我正在使用 Paperclip 将文件直接上传到我的 rails web 应用程序的 s3。我目前正在尝试利用亚马逊 s3 中集成的 md5 检查来验证上传是否成功进行。Paperclip 提供了一个 s3_headers 哈希,您可以使用您需要的任何字段填充它。Content-Type 会自动填充。Content-MD5 需要进行 Base64 编码,所以我以这种方式提供:
:s3_headers => {:content_md5 => Base64.strict_encode64(md5sum)},
我使用 strict_encode64 因为 encode64 添加了不必要的尾随 \n。使用此设置,我总是从 aws-sdk 收到 InvalidDigest 错误,即使回形针正确显示了计算的标题。我还尝试使用普通的、未编码的 md5sum,结果相似。