2012-11-15 14 views
23

私は(不合理ではないサイズの - 未満100メガバイト)ファイルをプルダウンするs3cmd使用し、私はときどきこのエラーを参照してください。 WARNING:MD5シグネチャが一致しない:計算= BLAHは、= "NOT-BLAH"aws s3 - s3cmd: "警告:MD5署名が一致しません:" - 何がありますか?

を受け

Google検索では、これはS3セグメントファイルの原因である可能性があります。他の人はそれを無視すると言いました。

なぜこのようなことが起こり、正しいことが分かっているのですか?

は 、お時間をいただき、ありがとうございます - ヘンリー

答えて

28

これを詳しく見ると、s3cmdはAmazonから間違ったmd5の和を読み込んでいるようです。 s3cmdがETAGフィールドからその合計を得ているかのように見えます。 PUTされたオブジェクトの実際のデータとGETされたオブジェクトを比較すると、内容は同一であり、このエラーは無視しても問題ありません。

+1

アップロードしたオリジナルのファイルとの差分を実行したので、間違いなくs3cmdの間違いがありました –

+0

これは今修正することができます。トピックは3年前に開かれました。 – Kru

+1

そうではありません。 @Kru私はファイルに対して試してみたところ、一致しませんでした –

1

を私はS3は現在、例えば、まさにこの問題を持っていることを時間前についてのレポートを見てthis tweet

RT @drags: @ylastic S3 returning incorrect md5s to s3cmd as well. Never seen an md5 with a '-' in it, until AWS. #AWS #S3

AWS Status Pageレポートがない問題が、私は、これは一時的な問題である期待しています。すぐにもう一度お試しください:-)

2

これは以前同期したファイルを再ダウンロードするため、s3cmdの同期を使用している方がより大きな問題です。これを解決するには、--no-check-md5オプションを追加します。これにより、s3cmdはファイルサイズを確認して変更されたファイルを特定します(これは私の目的には適していますが、アプリケーションによっては誰もがそうでない可能性があります)。

+0

明らかに警告を抑制しません。 – Kemal

+1

site-packages/S3/S3.pyを編集し、警告を削除します。 :) – Kemal

7

ファイルが "マルチパート"としてアップロードされた場合、S3のファイルのETagはMD5と一致しません。ファイルがマルチパートとマークされている場合AWSは各パーツをハッシュし、結果を連結し、その値をハッシュします。

ファイルに実際に複数の部分が含まれていない場合、結果は、最後に-1を加えたハッシュのハッシュになります。 S3にファイルをアップロードするツールでマルチパートを無効にしてみてください。 s3cmdの場合、オプションは--disable-multipartです。

3

S3 Multipart Upload機能を使用してファイルをアップロードした場合(通常は15MBを超えるファイルやstdinから読み込んだファイル)、「 - 」が付いたETagが必要です。 s3cmd 1.5.2はこれを知っており、このようなETagを無視します。 s3cmdが1.5.2より古い場合は、アップグレードしてください。

関連する問題