Amazon S3提供InvalidDigest:您指​​定的Content-MD5无效

als*_*kja 5 javascript amazon-s3 node.js browserify

这是解决方案:通过将MD5十六进制转换为base64而不是字符串来解决此问题。

JS的示例(Node.js或类似版本,browserify等)

new Buffer(md5, 'hex').toString('base64')
Run Code Online (Sandbox Code Playgroud)

我只花了几分钟就弄清楚了,所以我想可以分享一下。:)

Har*_*ana 6

Content-MD5 始终是 base64 标头。

根据 RFC 1864 的消息的 base64 编码的 128 位 MD5 摘要(不带标头)。此标头可用作消息完整性检查,以验证数据是否与最初发送的数据相同。尽管它是可选的,但我们建议使用 Content-MD5 机制作为端到端完整性检查。有关 REST 请求身份验证的更多信息,请转到 Amazon Simple Storage Service 开发人员指南中的 REST 身份验证 类型:字符串 默认值:无 约束:无

REST放置对象

  • 是的,但重点是你必须将 MD5 哈希值的十六进制表示法转换为 base64 :) (3认同)