5

我目前正在自动化构建脚本以将资源推送到 Amazon s3 并使用http://s3tools.org/s3cmd(和https://github.com/s3tools/s3cmd),我理解这是正常/主命令行使用的工具。没什么太复杂的,而且我在办公室外完成了大部分测试,但是一旦我进入那里,整个事情就开始分崩离析,我很困惑为什么。

一个简单的命令,例如('mybucket' 存在于 s3 上,'file.ext' 存在于我运行命令的目录中),

s3cmd put file.ext s3://mybucket/

都失败了

[Errno 104] Connection reset by peer

或者

[Errno 32] Broken pipe

我知道 s3 存在超过 5GB 大小的文件的问题,但这些文件远不及这个,它们小于 1MB,更不用说超过 1GB。真正奇怪的是,另一个程序http://www.bucketexplorer.com/运行良好,在同一个网络上执行完全相同的操作。

奇怪的是测试所有内容,我将笔记本电脑连接到手机的 3G 连接,立即一切正常,当我回到家,再次测试命令时,它再次完美运行。

关于使用 s3cmd 而不是 Bucket Explorer 在我们的工作网络上可能导致此错误的任何想法?

4

1 回答 1

1

此错误可能有很多原因,例如TCP 窗口缩放(或这个)和 DNS 传播。我能够通过使用 5MB 的小多部分块大小来解决这个问题:

s3cmd put --multipart-chunk-size=5 file.ext s3://mybucket/
于 2016-05-10T09:01:39.537 回答