5

私は現在、Amazon s3 にリソースをプッシュするビルド スクリプトを自動化しており、http://s3tools.org/s3cmd (およびhttps://github.com/s3tools/s3cmd ) を使用していますが、これは通常の / メイン コマンド ラインであることがわかりました。使用するツール。それほど複雑なことはなく、ほとんどのテストをオフィスの外で行っていましたが、そこに着くとすぐにすべてが崩壊し始め、なぜ私は頭がおかしくなりました.

次のような単純なコマンド (s3 に存在する 'mybucket' と、コマンドを実行しているディレクトリに存在する 'file.ext' の両方)、

s3cmd put file.ext s3://mybucket/

どちらかで失敗していました

[Errno 104] Connection reset by peer

また

[Errno 32] Broken pipe

サイズが 5 GB を超えるファイルで s3 に問題があることは知っていますが、これらのファイルは 1 MB 未満であり、1 GB を超えることはありません。本当に奇妙なことは、別のプログラムhttp://www.bucketexplorer.com/が完全に機能し、同じネットワーク上でまったく同じ操作を行っていたことです。

さらに奇妙なのは、すべてをテストすることでした。ラップトップを携帯電話の 3G 接続にテザリングすると、すぐにすべてが再び完全に機能し、家に帰ってコマンドをもう一度テストすると、再び完全に機能しました。

Bucket Explorer ではなく s3cmd を使用して、作業ネットワークでこのエラーを引き起こしている原因について何か考えはありますか?

4

1 に答える 1

1

このエラーには、 TCP ウィンドウ スケーリング(またはこれ) や DNS 伝播など、さまざまな理由が考えられます。5MB の小さなマルチパート チャンク サイズを使用することで、これを回避できました。

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