它曾经是我最喜欢的备份传输代理,但现在我经常从同一个Ubuntu服务器/networking上的s3cmd获得这个结果:
root@server:/home/backups# s3cmd put bkup.tgz s3://mybucket/ bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 36864 of 2711541519 0% in 1s 20.95 kB/s failed WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=0.00) WARNING: Waiting 3 sec... bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 36864 of 2711541519 0% in 1s 23.96 kB/s failed WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=0.01) WARNING: Waiting 6 sec... bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 28672 of 2711541519 0% in 1s 18.71 kB/s failed WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=0.05) WARNING: Waiting 9 sec... bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 28672 of 2711541519 0% in 1s 18.86 kB/s failed WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=0.25) WARNING: Waiting 12 sec... bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 28672 of 2711541519 0% in 1s 15.79 kB/s failed WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=1.25) WARNING: Waiting 15 sec... bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1] 12288 of 2711541519 0% in 2s 4.78 kB/s failed ERROR: Upload of 'bkup.tgz' failed too many times. Skipping that file.
即使对于小于100MB的文件也会发生这种情况,所以我认为这不是一个大小问题。 当我使用–acl-private标志(s3cmd版本1.0.1)时也会发生这种情况,
我很感激,如果你build议一些解决scheme或轻量级的替代s3cmd。
有几个常见的问题导致s3cmd返回你提到的错误:
s3cmd的替代品:
如果您希望编写自己的脚本,则可以使用具有执行大多数AWS操作的function的Python Boto库,并且可以在线获得许多示例。 有一个项目在命令行上公开了一些botofunction – 尽pipe目前有一小部分function可用。
这有助于我的情况:
s3cmd ls .s3cfg文件中的.s3cfgreplace为bucket_host中的.s3cfg 。 s3cmd ls ,它不应该再打印警告 我的.s3cfg现在是:
host_bucket = %(bucket)s.s3-external-3.amazonaws.com
我有与Ubuntu s3cmd命令相同的问题。
下载最新的稳定版本(1.0.1)解决了它: http : //sourceforge.net/projects/s3tools/files/s3cmd/
在尝试了上面所有的东西之后,我发现我仍然使用s3cmd put来解决问题,但是不使用s3cmd sync。 希望这可能是有用的一个人快速修复:)
我有同样的问题,并find了一个解决scheme在这方面作出回应。
当我开始使用IAM进行实验时,出现了这个问题。 在我的情况下,问题是在ARN。 我列出了arn:aws:s3:::bucketname而不是arn:aws:s3:::bucketname/*
这就是为什么我用$ s3cmd ls s:// bucketname没有问题,但不能上传任何文件((
我每秒上传一个带有s3cmd sync的多部分上传失败,并显示以下错误:
WARNING: Upload failed: /large-file.gz?partNumber=13&uploadId=FOOBAR ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=0.00) WARNING: Waiting 3 sec...
下一次上传会很好,但之后又会失败,依此类推。
我得到它与--limit-rate=选项设置为4m使上传被限制至4MB /秒。
所以完整的设置是
s3cmd sync --limit-rate=4m ...
这通常也是由.s3cfg文件的HTTPS设置引起的。
尝试将.s3cfg中的“use_https = False”configuration参数更改为“use_https = True”
记住亚马逊桶redirect到Https,因此所有的重试。 我在这个领域看到这个问题颇多。