gpt4 book ai didi

ruby-on-rails - 通过回形针向 S3 提供 Content-MD5 header

转载 作者:行者123 更新时间:2023-12-04 05:55:40 25 4
gpt4 key购买 nike

我正在使用 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,结果相似。

最佳答案

如果 md5sum 是一串十六进制数字,如 Linux 应用程序的 std 输出 md5sum , 试试这个:

:s3_headers => {:content_md5 => [[md5sum].pack("H*")].pack("m0") }

例如,从 rails 控制台:
> md5sum = "7d592a3129ab6a867cf6e2eb60f9ef83"
> [[md5sum].pack("H*")].pack("m0")
=> "fVkqMSmraoZ89uLrYPnvgw=="

关于ruby-on-rails - 通过回形针向 S3 提供 Content-MD5 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10796176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com