s4cmd的问题

时间:2016-09-15 19:58:46

标签: amazon-s3 s3cmd

我有大约50GB的数据要上传到S3存储桶,但s3cmd不可靠且非常慢。由于超时错误,同步似乎不起作用。

我切换到s4cmd它运行良好,多线程且快速。

     s4cmd dsync -r -t 1000 --ignore-empty-source forms/ s3://bucket/J/M/

上面上传了一组文件然后抛出错误 - [线程失败]无法从源读取数据:/ home / ubuntu / path to file 源文件包含一个图像文件,因此没有任何错误。

s4cmd具有像--retry这样的选项,如果它失败但重新启动,但这似乎也不起作用。  如果您遇到了防止此错误的解决方案,请分享。

1 个答案:

答案 0 :(得分:1)

我的工作正常。我很高兴我的文件上传非常快。如果您仍在使用s3cmd,我强烈建议您切换到s4cmd!

下载并安装s4cmd。找到s4cmd.py并替换为以下内容 -

    @log_calls
  def read_file_chunk(self, source, pos, chunk):
    '''Read local file cunks'''
    data = None
    with open(source, 'rb') as f:
      f.seek(pos)
      data = f.read(chunk)
    if not f:
      raise Failure('Unable to read data from source: %s' % source)
    return StringIO(data)

然后将s4cmd.py调用到上传命令,如

/pathtodir/s4cmd.py dsync -r forms/ s3://bucket/J/M/