如何使用AWS Ruby SDK处理预签名URL上传的长尾词疑问?

2026-04-11 15:491阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计257个文字,预计阅读时间需要2分钟。

如何使用AWS Ruby SDK处理预签名URL上传的长尾词疑问?

在用AWS Ruby SDK创建S3的预签名链接时,遇到问题。已指定md5哈希。从Rails控制台输出如下:

AWS::S3::Bucket.new.buckets[bucket].objects[key].url_for(:put, signature_version: 'v4')

我在使用AWS Ruby SDK创建到S3的预签名上载链接时遇到问题,同时指定了md5哈希.

md5 -q my_file.jpg 4ef248082efb309d50f1cbbbd3d7cf4a

从Rails控制台:

如何使用AWS Ruby SDK处理预签名URL上传的长尾词疑问?

AWS::S3.new.buckets[bucket].objects[key].url_for(:put, signature_version: :v4, content_md5: '4ef248082efb309d50f1cbbbd3d7cf4a').to_s => "s3.amazonaws.com/<rest_of_url_here>&X-Amz-SignedHeaders=Host%3BContent-MD5"

从命令行:

curl -v -H "content-md5:4ef248082efb309d50f1cbbbd3d7cf4a" -T my_file.jpg "s3.amazonaws.com/<rest_of_url_here>&X-Amz-SignedHeaders=Host%3BContent-MD5" <Error><Code>InvalidDigest</Code><Message>The Content-MD5 you specified was invalid.</Message> <RequestId>blah</RequestId><Content-MD5>4ef248082efb309d50f1cbbbd3d7cf4a</Content-MD5><HostId>blah</HostId></Error>

我可以生成上传链接并上传而不使用content-md5.执行上传后,我验证了S3对象确实具有与本地文件相同的MD5哈希值.

显然你需要MD5 base64编码.请注意,它不是MD5十六进制字符串,而是需要编码的实际MD5.我应该使用以下值:

openssl dgst -md5 -binary my_file.jpg | openssl enc -base64 TvJICC77MJ1Q8cu709fPSg==

本文共计257个文字,预计阅读时间需要2分钟。

如何使用AWS Ruby SDK处理预签名URL上传的长尾词疑问?

在用AWS Ruby SDK创建S3的预签名链接时,遇到问题。已指定md5哈希。从Rails控制台输出如下:

AWS::S3::Bucket.new.buckets[bucket].objects[key].url_for(:put, signature_version: 'v4')

我在使用AWS Ruby SDK创建到S3的预签名上载链接时遇到问题,同时指定了md5哈希.

md5 -q my_file.jpg 4ef248082efb309d50f1cbbbd3d7cf4a

从Rails控制台:

如何使用AWS Ruby SDK处理预签名URL上传的长尾词疑问?

AWS::S3.new.buckets[bucket].objects[key].url_for(:put, signature_version: :v4, content_md5: '4ef248082efb309d50f1cbbbd3d7cf4a').to_s => "s3.amazonaws.com/<rest_of_url_here>&X-Amz-SignedHeaders=Host%3BContent-MD5"

从命令行:

curl -v -H "content-md5:4ef248082efb309d50f1cbbbd3d7cf4a" -T my_file.jpg "s3.amazonaws.com/<rest_of_url_here>&X-Amz-SignedHeaders=Host%3BContent-MD5" <Error><Code>InvalidDigest</Code><Message>The Content-MD5 you specified was invalid.</Message> <RequestId>blah</RequestId><Content-MD5>4ef248082efb309d50f1cbbbd3d7cf4a</Content-MD5><HostId>blah</HostId></Error>

我可以生成上传链接并上传而不使用content-md5.执行上传后,我验证了S3对象确实具有与本地文件相同的MD5哈希值.

显然你需要MD5 base64编码.请注意,它不是MD5十六进制字符串,而是需要编码的实际MD5.我应该使用以下值:

openssl dgst -md5 -binary my_file.jpg | openssl enc -base64 TvJICC77MJ1Q8cu709fPSg==