检查下载的 Amazon S3 对象的完整性

时间:2021-06-09 14:59:38

标签: amazon-web-services amazon-s3 md5

我有一个 txt 文件,内容如下,文件末尾没有换行:

hello-world

这个文件内容的md5是2095312189753de6ad47dfe20cbe97ec

如果我通过 Web 客户端将此文件上传到 Amazon S3 存储桶,则文件 eTag 为 8a8933dab8deebe52e30886da1ef6ee2

此电子标签与预期上传的文件内容 md5 不匹配。

前一个内容加上行尾到文件末尾的结果 md5 是 8a8933dab8deebe52e30886da1ef6ee2

与对象 eTag 匹配的内容。为什么 Amazon S3 会在文件末尾添加一个额外的新行来计算 eTag?

如果我上传一个空文件,eTag 匹配空字符串的 md5(不添加新行)。

如果我上传一个在文件末尾有新行的文件,eTag 会匹配此内容的 md5,并在末尾文件中添加一个新行(所以到末尾有 2 个新行)。

Amazon S3 添加这条新行只是为了计算 eTag 的原因是什么?当我下载文件时,内容最后没有这个额外的新行。

此外,当我们无法控制从 Amazon S3 存储桶下载的文件的完整性时,推荐的方法是什么(可能可以进行多部分上传)?

0 个答案:

没有答案
相关问题