スキップしてコンテンツを表示

Amazon S3 にアップロードされたオブジェクトの整合性を確認する方法を教えてください。

所要時間1分
0

Amazon Simple Storage Service (Amazon S3) バケットにオブジェクトをアップロードしたいです。さらに、アップロードされたオブジェクトの整合性を検証したいです。

簡単な説明

Content-MD5 ヘッダーを使用してアップロードされたオブジェクトの整合性を検証するには、次の手順を実行します。

注: Content-MD5 ヘッダーを使用すると、Amazon S3 はオブジェクトを指定された Content-MD5 値と照合します。値が一致しない場合、エラーが発生します。

解決策

オブジェクトの Content-MD5 値を計算する

Windows OS

Windows オペレーティングシステムを使用している場合は、Microsoft PowerShell UtilityGet-FileHash コマンドレットを使用すると、MD5 ダイジェストを計算できます。例を次に示します。

Get-FileHash \path\to\file -algorithm MD5 | Format-List

注: Get-FileHash コマンドレットは Microsoft PowerShell Utility バージョン 4.0 以降で使用できます。

出力例を次に示します。

Algorithm : MD5
Hash      : C9A5A6878D97B48CC965C1E41859F034
Path      : \path\to\file

次に、計算された MD5 ダイジェストに base64 エンコーディングを適用して、必要な Content-MD5 値を取得します。

$hashString ='C9A5A6878D97B48CC965C1E41859F034'
$hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '')
$ContentMD5 = [System.Convert]::ToBase64String($hashByteArray)
Echo $ContentMD5
yaWmh42XtIzJZcHkGFnwNA==

この例では、Echo $ContentMD5 の出力 ("yaWmh42XtIzJZcHkGFnwNA==") が必要な Content-MD5 値です。

Linux OS

Linux オペレーティングシステムを使用している場合は、次の OpenSSL コマンドを実行してファイルの Content-MD5 値を取得します。

openssl md5 -binary PATH/TO/FILE | base64

アップロードされたオブジェクトの整合性を確認する

PutObject を使用して Amazon S3 にオブジェクトをアップロードするときに、Content-MD5 値をリクエストヘッダーとして渡します。Amazon S3 は、取得した Content-MD5 値でオブジェクトを照合します。値が一致しない場合、エラーが発生します。

Content-MD5 リクエストヘッダーは、S3 UploadPart API でも使用できます。

関連情報

一般的なリクエストヘッダー

S3 でのエラー応答

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ