我正在研究在将对象上传到 AWS S3 后向其写入 MD5sum,并按照此处所述执行数据完整性检查:
https://aws.amazon.com/premiumsupport/knowledge-center/data-integrity-s3/
例如,您已将 100,000 个对象上传到 AWS S3 存储桶,并且想要运行 MD5 来执行数据完整性检查,这样做是否会产生额外费用?这会增加 PUT、LIST 等请求的数量吗?
答案1
背景 - 添加元数据
只能在上传对象时设置元数据(亚马逊链接,请参阅下面复制的文本)。如果要将元数据添加到现有对象,则必须复制该对象,删除旧版本。
每个 Amazon S3 对象都有数据、密钥和元数据。对象密钥(或密钥名称)唯一地标识存储桶中的对象。对象元数据是一组名称-值对。您可以在上传对象元数据时设置它。上传对象后,您无法修改对象元数据。修改对象元数据的唯一方法是复制对象并设置元数据。
由于设置元数据是 PUT 请求的一部分,因此无需支付额外费用,因为它们是按请求收费而不是按数据量。
AWS 支持的验证上传数据的方法
AWS 支持对上传到 S3 的数据进行 MD5 验证,具体说明如下这里,以及S3API PUT 文档. 简而言之你:
- 在本地计算 MD5
- 在上传请求中包含 MD5,AWS 会为您检查
- 您可以选择在上传时将 MD5 作为元数据包含在内
如果对象未通过 MD5 校验,则 S3 的响应将包含错误。
AWS MD5 验证的费用
S3 定价页面未提及 MD5 验证的任何费用,所以我能给你的唯一答案是“不收费”。