当前位置:  开发笔记 > 运维 > 正文

使用服务器端加密上传到S3期间的数据完整性检查

如何解决《使用服务器端加密上传到S3期间的数据完整性检查》经验,为你挑选了0个好方法。

数据完整性检查是AWS Java SDK声称它默认提供的内容,客户端可以自己计算对象校验和,并在S3客户端中将其添加为标头"Headers.CONTENT_MD5",或者如果我们将其作为null传递或者不设置它,S3客户端在内部计算客户端本身的MD5校验和,它用它来比较从对象创建响应中获得的Etag((除了创建对象的MD5)以将错误返回到在数据完整性失败的情况下客户端.请注意,在这种情况下,完整性检查发生在客户端而不是S3服务器端,这意味着仍然会成功创建对象,客户端需要清理它明确.

因此,建议使用标头(检查发生在S3端本身并提前失败)但由于TransferManager使用部件上载,客户端无法为特定部件显式设置MD5.传输管理器应该负责计算部件的MD5并设置标头,但我不会在代码中看到这种情况.

由于我们希望使用Transfer Manager进行多部分上传,因此我们需要依赖于默认情况下启用的客户端检查.但是,也有一个警告.当我们在S3中的对象上启用SSE-KMS或SSE-C时,将跳过此数据完整性检查(正如它们在代码中的一个注释中所提到的那样),在这种情况下,接收到密文的MD5来自S3,无法通过在客户端计算的MD5进行验证.

我应该使用什么来启用S3中的SSE进行数据完整性检查?

注意:请验证上述理解是否正确.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有