【发布时间】:2019-07-24 08:59:53
【问题描述】:
我正在开发一个 Python 应用程序,它由一个上传模块组成,核心功能从队列中提取 .png 图像,并使用 Boto3 客户端将它们上传到某个存储桶。
问题在于,有时(并非总是)图像仅上传了一部分。例如当我下载有缺陷的图像时,它似乎被裁剪了。
当我手动上传图像(使用 FTP/SSH 客户端)时,图像被完美上传。
以下是我的核心函数,注意我使用的是upload_fileobj() 和进度条机制的回调。
def upload_file_aws(self):
s3 = boto3.client('s3', aws_access_key_id=self.aws_access_key,
aws_secret_access_key=self.aws_secret_key)
if (not self.uploader.queue.empty()):
file = self.uploader.queue.get()
with open(file, 'rb') as f:
aws_format = '%s' % AppObject.file_path_dic.get(file)
s3.upload_fileobj(f, self.bucket_name, aws_format, Callback=ProgressBarInit(file))
以前有人遇到过这个问题吗? 在亚马逊的 doc 文件中,他们声明 boto3 协议不支持部分上传。
【问题讨论】:
标签: python amazon-web-services amazon-s3 png boto3