博客
关于我
python调用aws api操作s3
阅读量:603 次
发布时间:2019-03-12

本文共 1729 字,大约阅读时间需要 5 分钟。

配置AWS环境并进行S3上传下载操作

创建配置文件夹

mkdir ~/.aws

生成密钥文件

请在用户的主目录下创建配置文件

vim ~/.aws/config

[default] 提供的输出格式为JSON

region = ap-northeast-2

默认区域设置

创建密钥文件

请在配置文件夹中创建或编辑密钥文件

vim ~/.aws/credentials

[default]

aws_access_key_id = AWS密钥ID

aws_secret_access_key = AWS秘密密钥

编写上传脚本

vim upload.py

以下是示例Python脚本

#!/usr/bin/pythonimport loggingimport boto3from botocore.exceptions import ClientErrordef upload_file(file_name, bucket, object_name=None):    """上传文件到S3桶    参数:        file_name: 需要上传的文件        bucket: 上传的S3桶名        object_name: S3对象名,默认与file_name相同    返回值:        True/False    """    if object_name is None:        object_name = file_name    s3_client = boto3.client('s3')    try:        response = s3_client.upload_file(file_name, bucket, object_name)    except ClientError as e:        logging.error(e)        return False    return Truedef main():    # 替换为实际值    bucket_name = 'test-bucket'    file_name = 'testfile'    object_name = 'testfile'        # 设置日志    logging.basicConfig(        level=logging.DEBUG,        format='%(levelname)s: %(asctime)s: %(message)s'    )        # 上传文件    response = upload_file(file_name, bucket_name, object_name)    if response:        logging.info('文件已上传')if __name__ == '__main__':    main()

下载操作示例

请根据实际需求编写下载脚本

vim download.py

#!/usr/bin/pythonimport boto3# 替换为实际值BUCKET_NAME = 'test-bucket'KEY = 'testfile'download_path = 'testfile's3 = boto3.resource('s3')try:    s3.Bucket(BUCKET_NAME).download_file(KEY, download_path)except botocore.exceptions.ClientError as e:    if e.response['Error']['Code'] == "404":        print("对象不存在.")    else:        raise

使用AWS CLI进行批量操作

# 上传示例aws s3 cp ./testfile s3://testbucket/testfile

# 下载示例aws s3 cp s3://testbucket/testfile ./

更多Python操作示例

请根据实际需求扩展脚本功能

转载地址:http://qabxz.baihongyu.com/

你可能感兴趣的文章
Nginx的可视化神器nginx-gui的下载配置和使用
查看>>
Nginx的是什么?干什么用的?
查看>>
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的5种策略(转载)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx运维与实战(二)-Https配置
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>