- AWS SDK for PHP

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

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

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

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

我們在兩個請求階段討論校驗和:上傳對象和下載對象。

上傳物件

演算法的有效值為CRC32CRC32CSHA1、和SHA256

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

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

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

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

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

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

分段上傳

您也可以在多部分上傳中使用總和檢查碼。

下載物件

當您使用 GetObject 方法下載物件時,SDK 會在自動驗證總和檢查碼。enabled

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

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

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

  1. CRC

  2. CRC-32

  3. SHA-1

  4. SHA-256

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