boto3默认是否尝试重试多部分上传?

时间:2017-05-10 21:40:06

标签: python file-upload amazon-s3 boto3

我正在使用boto3 1.4.4使用S3.Client.upload_file处理向S3上传大文件(通常为几百兆字节到几千兆字节)。

默认情况下,botocore会处理重新上传流式传输的boto3文档claim

  
      
  • 重试。虽然botocore处理流式上传的重试,   它不可能处理流式传输的重试   下载。此模块处理两种情况的重试   你自己不需要实现任何重试逻辑。
  •   

但是,我一直在查看source code,而且我一直无法找到任何证据表明上传实际上已经处理了重试。相反,下载的重试逻辑(使用download_filedownload_fileobj)为explicit and evident,因此我不知道在上传过程中是否实际处理了重试。

以下是失败上传的部分堆栈跟踪,这就是我首先提出问题的原因:


  File "/usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py", line 642, in upload_file
    self._multipart_upload(filename, bucket, key, callback, extra_args)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py", line 739, in _multipart_upload
    uploader.upload_file(filename, bucket, key, callback, extra_args)
  File "/usr/local/lib/python2.7/dist-packages/boto3/s3transfer/__init__.py", line 393, in upload_file
    filename, '/'.join([bucket, key]), e))
  S3UploadFailedError: Failed to upload [file] to [bucket]: (104, 'ECONNRESET')

boto3是否提供了重试上传的保证,如果是,那么这个逻辑在哪里实现/记录?

目前我选择使用retrying套餐重复拨打upload_file

0 个答案:

没有答案