選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Amazon S3 的資料完整性保護 - AWS SDKs和工具

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

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

Amazon S3 的資料完整性保護

注意

如需了解設定頁面配置或解譯 Support AWS SDKs和後續工具資料表的說明,請參閱 了解本指南的設定頁面

一段時間內, AWS SDKs將資料上傳至 Amazon Simple Storage Service 或從 Amazon Simple Storage Service 下載資料時,已支援資料完整性檢查。先前,這些檢查是選擇加入的。現在,我們預設已使用 CRC 型演算法啟用這些檢查,例如 CRC32 或 CRC64NVME。雖然每個 SDK 或工具都有預設演算法,但您可以選擇不同的演算法。您也可以視需要繼續手動提供預先計算的上傳檢查總和。跨上傳、分段上傳、下載和加密模式的一致行為可簡化用戶端完整性檢查。

最新版本的我們的 AWS SDKs,並 AWS CLI 針對每次上傳自動計算循環備援檢查 (CRC) 型檢查總和,並將其傳送至 Amazon S3。Amazon S3 會獨立計算伺服器端的檢查總和,並根據提供的值進行驗證,然後再將物件及其檢查總和永久存放在物件的中繼資料中。透過將檢查總和與物件一起存放在中繼資料中,當物件下載時,系統會自動傳回相同的檢查總和,並用來驗證下載。您也可以隨時驗證存放在物件中繼資料中的檢查總和。

若要進一步了解檢查總和操作、分段上傳或支援的檢查總和演算法清單,請參閱《Amazon Simple Storage Service 使用者指南》中的在 Amazon S3 中檢查物件完整性

分段上傳:

Amazon S3 也為開發人員提供跨單一部分和分段上傳的一致完整物件檢查總和。

以多個部分上傳檔案時,SDKs會計算每個部分的檢查總和。Amazon S3 使用這些檢查總和透過 UploadPart API 驗證每個部分的完整性。此外,當您呼叫 CompleteMultipartUpload API 時,Amazon S3 會驗證整個檔案的大小和檢查總和。

如果您的 SDK 具有 Amazon S3 Transfer Manager 來協助分段上傳,則檢查總和會使用支援 AWS SDKs和工具資料表中找到的開發套件特定預設演算法來驗證組件。您可以透過將 設定為 checksum_typeFULL_OBJECT或選擇使用 CRC64NVME 演算法,選擇加入完整的物件檢查總和。

如果您使用的是較舊版本的 SDK 或 AWS CLI:

如果您的應用程式使用 2024 年 12 月之前的版本開發套件或工具,Amazon S3 仍會在新物件上計算 CRC64NVME 檢查總和,並將其存放在物件中繼資料中以供日後參考。您稍後可以將存放的 CRC 與側邊計算的 CRC 進行比較,並確認網路傳輸正確。此外,您仍然可以手動擴展完整性保護,方法是使用 PutObjectUploadPart請求提供您自己的預先計算檢查總和,這是在較舊版本中解決此問題的標準技術。

使用下列設定此功能:

request_checksum_calculation - 共用 AWS config檔案設定
AWS_REQUEST_CHECKSUM_CALCULATION - 環境變數
aws.requestChecksumCalculation - JVM 系統屬性:僅限 Java/Kotlin

根據預設,使用者在傳送請求時可以選擇加入計算請求檢查總和。使用者可以選擇任何可用的檢查總和演算法,做為建置請求的一部分。否則,會使用 SDK 特定的預設演算法。如需每個 SDK 或工具的預設演算法,請參閱 支援 AWS SDKs和工具資料表。

預設值WHEN_SUPPORTED

有效值

  • WHEN_SUPPORTED – 當 API 操作支援時,檢查總和驗證會在所有回應承載上執行,例如資料傳輸到 Amazon S3。

  • WHEN_REQUIRED – 檢查總和驗證僅在 API 操作需要時才執行。

response_checksum_validation - 共用 AWS config檔案設定
AWS_RESPONSE_CHECKSUM_VALIDATION - 環境變數
aws.responseChecksumValidation - JVM 系統屬性:僅限 Java/Kotlin

在預設情況下,使用者在傳送請求時可以選擇加入回應檢查總和驗證。系統會計算回應承載的檢查總和,並與檢查總和回應標頭進行比較。如果檢查總和驗證失敗,讀取承載時,使用者會遇到錯誤。

檢查總和回應標頭也會指出檢查總和的演算法。Amazon S3 用戶端會嘗試驗證支援檢查總和之所有 Amazon S3 API 操作的回應檢查總和。不過,如果 SDK 未實作指定的檢查總和演算法,則會略過此驗證。

預設值WHEN_SUPPORTED

有效值

  • WHEN_SUPPORTED – 當 API 操作支援時,檢查總和驗證會在所有回應承載上執行,例如資料傳輸到 Amazon S3。

  • WHEN_REQUIRED – 檢查總和驗證僅在 API 操作支援且發起人已明確啟用操作的檢查總和時執行。例如,當呼叫 Amazon S3 GetObject API 且 ChecksumMode 參數設定為啟用時。

支援 AWS SDKs和工具

下列 SDKs 支援本主題中所述的功能和設定。會記下任何部分例外狀況。 適用於 Java 的 AWS SDK 和 適用於 Kotlin 的 AWS SDK 僅支援任何 JVM 系統屬性設定。

注意

在下表中,「CRT」是指 AWS 通用執行期 (CRT) 程式庫,可能需要將額外的相依性新增至您的專案。

SDK 支援 預設檢查總和演算法 支援的檢查總和演算法 備註或更多資訊
AWS CLI v2 CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256 對於 AWS CLI v1,預設演算法和支援的演算法將與 Python (Boto3) 相同。
適用於 C++ 的 SDK CRC64NVME CRC64NVME, CRC32, CRC32C, SHA1, SHA256
SDK for Go V2 (1.x) CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
適用於 Go 的 SDK 1.x (V1)
適用於 Java 的 SDK 2.x CRC32 CRC64NVME (僅透過 CRT)、CRC32, CRC32C, SHA1, SHA256
適用於 Java 的 SDK 1.x
適用於 JavaScript 3.x 的 SDK CRC32 CRC32, CRC32C, SHA1, SHA256
適用於 JavaScript 2.x 的 SDK
適用於 Kotlin 的 SDK CRC32 CRC32, CRC32C, SHA1, SHA256
適用於 .NET 3.x 的 SDK CRC32 CRC32, CRC32C, SHA1, SHA256
適用於 PHP 3.x 的開發套件 CRC32 CRC32, CRC32C (僅限透過 CRT)、SHA1, SHA256 awscrt 需要 擴充功能才能使用 CRC32C。
適用於 Python 的 SDK (Boto3) CRC32 CRC64NVME (僅透過 CRT)、CRC32, CRC32C (僅透過 CRT)、SHA1, SHA256
適用於 Ruby 的 SDK 3.x CRC32 CRC64NVME (僅透過 CRT)、CRC32, CRC32C (僅透過 CRT)、SHA1, SHA256
適用於 Rust 的 SDK CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256
適用於 Swift 的 SDK CRC32 CRC64NVME, CRC32, CRC32C, SHA1, SHA256 所有演算法都需要 CRT 相依性。
PowerShell 的工具 CRC32 CRC32, CRC32C, SHA1, SHA256
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。