

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

# 在 Amazon S3 中檢查物件完整性
<a name="checking-object-integrity"></a>

Amazon S3 在整個物件的儲存生命週期中，提供各種資料保護功能。您可以藉由 Amazon S3 來使用檢查總和值，驗證上傳或下載的資料完整性。此外，您可以請求為儲存在 S3 中的任何物件計算另一個檢查總和值。

上傳、複製或管理資料時，您可以從數種支援的檢查總和演算法中選擇：
+ CRC-64/NVME (`CRC64NVME`)
**注意**  
`CRC64NVME` 檢查總和演算法，是用於檢查總和計算的預設檢查總和演算法。
+ CRC-32 (`CRC32`)
+ CRC-32C (`CRC32C`)
+ SHA-1 (`SHA1`)
+ SHA-256 (`SHA256`)
+ MD5 (`MD5`)
+ XXHash64 (`XXHASH64`)
+ XXHash3 (`XXHASH3`)
+ XXHash128 (`XXHASH128`)
+ SHA-512 (`SHA512`)

**注意**  
您可以使用 `x-amz-checksum-md5`標頭提供預先計算的 MD5 檢查總和。 AWS SDKs不會自動計算 MD5 檢查總和。對於分段上傳，S3 批次操作中的運算檢查總和操作可以計算靜態物件的完整物件 MD5 檢查總和。舊版`Content-MD5`標頭仍然可用於使用 SSE-S3 加密的單一部分上傳。

當您上傳物件至 S3 時，可以指定使用這些檢查總和演算法的任何部分。對於上傳，所有 AWS擁有的用戶端都會計算物件的檢查總和，並與上傳請求一起傳送。然後，S3 會單獨計算伺服器端物件的檢查總和值，並在儲存物件和檢查總和值之前，使用提供的值進行驗證。當執行單一部分上傳或分段上傳時，您也可以提供這些檢查總和演算法的預先計算值 (使用分段上傳的完整物件檢查總和類型)。若要搭配多個物件使用預先計算的值，請使用 AWS CLI 或 AWS SDKs。

或者，如果您想要在 S3 中驗證資料集，而不需還原或下載資料，您可以搭配 S3 Batch Operations 使用**運算檢查總和**作業。**運算檢查總和**作業，可讓您有效驗證一個任務請求中的數十億個物件。執行**運算檢查總和**作業時，S3 會計算靜態物件清單的檢查總和值。在任務請求結束時，您會收到自動產生的完整性報告 (也稱為完成報告)，可用來確認資料集保持不變。

**Topics**
+ [在 Amazon S3 中檢查資料上傳的物件完整性](checking-object-integrity-upload.md)
+ [檢查 Amazon S3 中靜態資料的物件完整性](checking-object-integrity-at-rest.md)