mic*_*xor 8 python file-upload amazon-s3 boto3
我正在使用boto3 1.4.4来处理使用S3处理大型文件(通常是数百MB到几GB)的上传S3.Client.upload_file。
boto3文档声称默认情况下,botocore处理重试以进行流式上载。
- 重试。虽然botocore处理重试以进行流式上载,但它不可能处理重试以用于流式下载。该模块处理两种情况的重试,因此您无需自己实现任何重试逻辑。
但是,我一直在浏览源代码,但找不到任何证据证明上载实际上已处理重试。相反,下载(使用download_file或download_fileobj)的重试逻辑是明确且显而易见的,因此对于上载期间是否实际处理重试,我感到困惑。
接下来是来自失败上传的部分堆栈跟踪,这就是为什么我首先问这个问题的原因:
upload_file中的文件“ /usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py”,第642行
self._multipart_upload(文件名,存储桶,密钥,回调,extra_args)
_multipart_upload中的第739行的文件“ /usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py”
uploader.upload_file(文件名,存储桶,密钥,回调,extra_args)
在上载文件中的文件“ /usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py”,第393行
文件名,'/'。join([bucket,key]),e))
S3UploadFailedError:无法将[文件]上载到[存储桶]:(104,'ECONNRESET')
boto3是否提供某些保证可以重试上载,如果可以,则在何处实现/记录此逻辑?
目前,我选择使用重试包来重复调用upload_file