亚马逊s3上传签名网址公开阅读

时间:2013-11-15 12:13:10

标签: ruby amazon-s3 pre-signed-url

这是由Ruby aws-sdk gem为put:

生成的网址
curl --upload-file "/Users/README.rdoc" 
-H "x-amz-acl=public-read" 
"http://videos.s3.amazonaws.com/6c06517c-64f1-45ed-b07f-8c4c4edec6e3?AWSAccessKeyId={key}&Expires=1384519899&Signature=MKtBESBklYXFT%2B48EKLSoBiQpNA%3D"
签名中不存在

-H "x-amz-acl=public-read"。签名没问题(亚马逊没有显示任何错误)。

但是没有应用“公开阅读”权限,请告诉我如何生成一个已经签名的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)

2 个答案:

答案 0 :(得分:2)

看起来你可以用acl方法指定它(记录here) 如果您想将您的存储桶设置为公开读取,您可以致电:

s3.buckets['some-videos'].acl = :public_read

如果您想将此权限直接应用于您可以调用的对象:

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

答案 1 :(得分:1)