呼ば投稿を使用してAmazon S3のファイルのMD5チェックサムを取得する方法: Amazon S3 & Checksum、 How to encode md5 sum into base64 in BASHプログラムでのboto
私はアクセスが制限されたS3バケットからtarファイルをダウンロードする必要があります。私は私が現在使用してS3
内のメタデータとして存在するデータのMD5チェックインサムに対するダウンロードしたファイルのMD5チェックサムをチェックする必要がダウンロードした後
を[ほとんどアクセス権限のみをダウンロードするように与えられました] S3ファイルブラウザを使用して、コンテンツヘッダーの "x-amz-meta-md5"を手動で書き留め、ダウンロードしたファイルの計算されたmd5に対してその値を検証します。
botoを使用してS3ファイルのmd5ハッシュ値をメタデータとして記述するプログラム的な方法があるかどうかを知りたいと思います。
from boto.s3.connection import S3Connection
conn = S3Connection(access_key, secret_key)
bucket=conn.get_bucket("test-bucket")
rs_keys = bucket.get_all_keys()
for key_val in rs_keys:
print key_val, key_val.**HOW_TO_GET_MD5_FROM_METADATA(?)**
私の理解が間違っている場合は、訂正してください。私はKey
オブジェクトのmd5
属性としてのbotoがget_contents_to_*
のいずれかの方法を使用してファイルをダウンロードすると、それはそれはダウンロードしたバイトのMD5チェックサムを計算し、それが利用できるようにするプログラムで
提案していただきありがとうございます。 Etag値がComputed MD5チェックサムと一致していないようです。私は、引用された記事で、etagはMD5の適切な値ではないことも見てきました。 "x-amz-meta-md5"は私のS3ファイルブラウザのキーで、私にMD5値を与えます。しかし、このキーは、プログラマチックに取得されるメタデータまたはコンテンツヘッダーでは使用できません。 – user1652054
'' etag''属性は '' "797cc49509a9df16481fac4fae144e0a" ''の形式になり、 '' md5''属性は '' 797cc49509a9df16481fac4fae144e0a''になります。 '' etag''を囲む二重引用符に注意してください。値を比較するときは、これを考慮する必要があります。 '' x-amz-meta-md5''キーは標準的なS3メタデータ値ではなくカスタムのものです。おそらくそれはS3ファイルブラウザによって追加されたでしょうか? – garnaat
もう1つのコメント。私はbotoのソースコードを見て、ファイルをダウンロードするときにbotoが '' md5''を使って '' etag''ヘッダーの値を自動的にチェックすることを確認しました。一致しない場合、 '' S3DataError''例外が発生します。 – garnaat