Python Boto3 AWS 分段上传语法

标签 python amazon-web-services amazon-s3 boto boto3

我已成功通过 AWS 进行身份验证,并使用 Bucket 对象上的“put_object”方法上传文件。现在我想使用多部分 API 来完成大文件的操作。我在这个问题中找到了公认的答案: How to save S3 object to a file using boto3

但是当尝试实现时,我收到“未知方法”错误。我究竟做错了什么?我的代码如下。谢谢!

## Get an AWS Session
self.awsSession = Session(aws_access_key_id=accessKey,
aws_secret_access_key=secretKey,
aws_session_token=session_token,
region_name=region_type)  

 ...          

# Upload the file to S3
s3 = self.awsSession.resource('s3')
s3.Bucket('prodbucket').put_object(Key=fileToUpload, Body=data) # WORKS
#s3.Bucket('prodbucket').upload_file(dataFileName, 'prodbucket', fileToUpload) # DOESNT WORK
#s3.upload_file(dataFileName, 'prodbucket', fileToUpload) # DOESNT WORK

最佳答案

upload_file 方法尚未移植到存储桶资源。现在您需要直接使用客户端对象来执行此操作:

client = self.awsSession.client('s3')
client.upload_file(...)

关于Python Boto3 AWS 分段上传语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30942123/

相关文章:

Python Pandas数据帧格式索引问题

python - 为什么 matplotlib 轴应该包含的 Line2D 对象显示为空?

json - 通过 Cloudformation 模板创建 RDS Opsworks 层

amazon-web-services - 输出中的地形插值

Django AWS S3 使用 Boto 和 Compressor 无法压缩 UncompressableFileError

java - 使用 JAVA 在 S3 存储桶上放置/读取文件

python - 增加特定行的列中的整数值

python - 展平 Pandas 数据框

php - MySQL 连接无法在 AWS EC2 上运行

amazon-web-services - 更改现有 S3 对象的内容处置