AWS cli 是否在與 s3 同步時執行資料完整性檢查?

AWS cli 是否在與 s3 同步時執行資料完整性檢查?

我一直在研究使用 AWS cli 進行資料完整性檢查,以驗證備份是否已從 Linux 檔案伺服器正確傳輸到 AWS s3。同樣,我想驗證將檔案從備份還原到 Linux 檔案伺服器時是否也正確傳輸。

我檢查了 S3 上與物件一起儲存的 etag,因為它似乎是 md5sum。但是,如果在大檔案的情況下將檔案作為分段傳輸,則 etag 將不再有效。

但在我進一步嘗試對每次剛同步到 S3 的內容進行 MD5sum 之前,真的有必要這樣做嗎?當透過互聯網在 Linux 檔案系統之間使用 rsync 時,對傳輸的檔案進行 md5sum 來驗證它們並不常見。因為假設我認為 rsync 已經解決了這個問題?

所以我想知道 AWS clisync 是否已經為我們處理了資料完整性檢查?

答案1

簡短的回答是肯定的,aws s3 syncaws s3 cp計算 MD5 校驗和,如果上傳完成時不匹配,將重試最多五次。

較長的答案:

AWS CLI 將計算並自動填入標準上傳和分段上傳的 Content-MD5 標頭。如果 S3 計算的校驗和與提供的 Content-MD5 不匹配,S3 將不會儲存該對象,而是會向 AWS CLI 傳回錯誤訊息。 AWS CLI 將在放棄之前重試此錯誤最多 5 次。

如果請求使用 a 進行簽名,Signature Version 4則不會計算 MD5 校驗和。

請注意,AWS CLI 將為執行上傳的高級 aws s3 命​​令(aws s3 cp、aws s3sync)以及低階 s3api 命令(包括 aws s3api put-object 和 aws s3api upload)新增 Content-MD5 標頭部分。

參考

AWS CLI S3 常見問題解答

相關內容