簡體   English   中英

AWS 服務通過校驗和驗證 S3 中文件的數據完整性?

[英]AWS service to verify data integrity of file in S3 via checksum?

確保文件在 S3 中的一種方法是下載它,獲取其校驗和,並將結果與​​您期望的校驗和匹配。

AWS 是否提供任何服務,允許在用戶無需先下載文件的情況發生這種情況 (即理想情況下是一個簡單的請求/url,提供 S3 文件的校驗和,以便可以在下載文件之前對其進行驗證)

到目前為止我嘗試過的

我可以想到一個 DIY 解決方案

  • 創建一個接受帶有 S3 文件 url 的POST請求的 API 端點
  • 讓 API 運行一個 lambda 來生成文件的校驗和
  • 用校驗和值響應

這可能可行,但已經有點復雜並且需要進一步考慮,例如大文件可能需要很長時間來生成校驗和(例如 > 60 秒)

我希望 AWS 有一些簡單的方法來驗證 S3 文件?

每個對象都創建了一個ETag ,它是對象內容的 MD5。

然而,似乎有一些例外。

來自通用響應標頭 - Amazon Simple Storage Service

ETag:實體標簽是對象的哈希值。 ETag 僅反映對象內容的更改,而不反映其元數據。 ETag 可能是也可能不是對象數據的 MD5 摘要。 它是否取決於對象是如何創建的以及它是如何加密的,如下所述:

  • 由 PUT 對象、POST 對象或復制操作或通過 AWS 管理控制台創建並由 SSE-S3 或純文本加密的對象具有作為其對象數據的 MD5 摘要的 ETag。

  • 由 PUT 對象、POST 對象或復制操作或通過 AWS 管理控制台創建並由 SSE-C 或 SSE-KMS 加密的對象具有不是其對象數據的 MD5 摘要的 ETag。

  • 如果一個對象是由 Multipart Upload 或 Part Copy 操作創建的,則 ETag不是 MD5 摘要,無論加密方法如何。

此外,多部分上傳的 ETag 計算可能很復雜。 請參閱: s3cmd - 為大於 5GB 的文件計算 Amazon-S3 Etag 的算法是什么? - 堆棧溢出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM