全部-我们正在努力将一些机密和法规信息从本地UNIX文件系统迁移到S3。
使用“ aws s3 cp--sse aws:kms --sse-kms-key-id .......”命令,使用AWS EC2实例将文件复制到S3。
我注意到etag与unix md5sum不同。如果我不使用kms密钥加密数据,则完全相同。
我需要验证上传内容,以确保上传到S3时数据没有损坏,我如何验证我的文件是完整的,因为加密导致etag不匹配。
我们非常感谢您的帮助!
PS:我的文件不是5GB,我知道分段上传的问题,它不适用于我。...
答案 0 :(得分:1)
在AWS S3中,etag不是MD5校验和。如果只是这种情况,过去就是这种情况,但是AWS警告不要对这种方法进行完整性检查。
以下链接是我指的文字:
The ETag may or may not be an MD5 digest of the object data.
实体标签是对象的哈希。 ETag仅反映更改 对象的内容,而不是其元数据。 ETag可能会或可能会 不是对象数据的MD5摘要。是否存在取决于 关于如何创建对象以及如何按照说明进行加密的信息 下方:
由PUT对象,POST对象或复制操作或通过AWS管理控制台创建的对象,并由SSE-S3或 纯文本,具有ETag,这些ETag是其对象数据的MD5摘要。
由PUT对象,POST对象或复制操作或通过AWS管理控制台创建的对象,并由SSE-C或 SSE-KMS的ETag不是其对象数据的MD5摘要。
如果通过“分段上传”或“分段复制”操作创建了对象,则无论采用哪种方法,ETag都不是MD5摘要。 加密。