Ruby AmazonS3上传签名url公共读取

Ruby AmazonS3上传签名url公共读取,ruby,amazon-s3,pre-signed-url,Ruby,Amazon S3,Pre Signed Url,这是由for put生成的URL: 签名中不存在-H“x-amz-acl=public read”。签名没有问题(Amazon没有显示任何错误) 但“公开阅读”权限不适用,请告知我如何生成一个put签名的URL,该URL将在上传后公开阅读 谢谢 更新: s3 = AWS::S3.new bucket = s3.buckets['some_videos'] id = SecureRandom.uuid object = bucket.objects["#{id}"] url = object.ur

这是由for put生成的URL:

签名中不存在
-H“x-amz-acl=public read”
。签名没有问题(Amazon没有显示任何错误)

但“公开阅读”权限不适用,请告知我如何生成一个put签名的URL,该URL将在上传后公开阅读

谢谢

更新:

s3 = AWS::S3.new
bucket = s3.buckets['some_videos']
id = SecureRandom.uuid
object = bucket.objects["#{id}"]
url = object.url_for(:put, expires_in: 30*60)

看起来您可以使用acl方法(文档化)来指定这一点 如果要将bucket设置为public read,可以调用:

s3.buckets['some-videos'].acl = :public_read
如果要将此权限直接应用于对象,可以调用:

bucket.objects["#{id}"].acl= :public_read

亚马逊团队将此添加到他们的sdk中。谢谢,伙计们!

您可以添加生成此URL的Ruby代码吗?@Carols100分完成,请看Neal,看起来SDK v2采用了字符串“public read”obj.upload_file(fd,{:acl=>“public read”})
bucket.objects["#{id}"].acl= :public_read