具有 第 3 版的 Amazon S3 總和檢查碼 - AWS SDK for PHP

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

具有 第 3 版的 Amazon S3 總和檢查碼

Amazon Simple Storage Service (Amazon S3) 可讓您在上傳物件時指定總和檢查碼。當您指定總和檢查碼時,會與物件一起存放,而且可在下載物件時驗證。

當您傳輸檔案時,總和檢查碼可提供額外的資料完整性層。透過總和檢查碼,您可以確認收到的檔案與原始檔案相符,藉此驗證資料一致性。如需使用 Amazon S3 檢查總和的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南

Amazon S3 目前支援四種檢查總和演算法:SHA-1、SHA-256、CRC-32 和 CRC-32C。您可以靈活地選擇最符合您需求的演算法,並讓 SDK計算總和檢查碼。或者,您可以使用四種支援的演算法之一來指定自己的預先計算的總和檢查值。

我們討論兩個請求階段的檢查總和:上傳物件和下載物件。

上傳物件

演算法的有效值為 CRC32SHA1CRC32CSHA256

下列程式碼片段顯示上傳具有 CRC-32 總和檢查碼之物件的請求。SDK 傳送請求時,它會計算 CRC-32 檢查總和並上傳物件。Amazon S3 會將總和檢查碼與 物件一起存放。

如果 SDK計算的檢查總和與 Amazon S3 收到請求時計算的檢查總和不相符,則會傳回錯誤。

使用預先計算的檢查總和值

隨請求提供的預先計算檢查總和值會停用 的自動計算,SDK並改用提供的值。

下列範例顯示具有預先計算的 SHA-256 檢查總和的請求。

如果 Amazon S3 確定指定演算法的檢查總和值不正確,則服務會傳回錯誤回應。

分段上傳

您也可以使用具有分段上傳的檢查總和。

下載物件

當您使用 getObject方法下載物件時,當金鑰的值為 時, SDK會自動驗證總和檢查。

下列程式碼片段中的請求會引導 計算總和檢查碼並比較值SDK,以驗證回應中的總和檢查碼。

如果物件未以總和檢查碼上傳,則不會進行驗證。

Amazon S3 中的物件可以有多個檢查總和,但下載時只會驗證一個檢查總和。下列優先順序 - 根據檢查總和演算法的效率 - 決定SDK驗證的檢查總和:

  1. CRC-32C

  2. CRC-32

  3. SHA-1

  4. SHA-256

例如,如果回應同時包含 CRC-32 和 SHA-256 總和檢查碼,則只會驗證 CRC-32 總和檢查碼。