我正在编写代码,以便使用 aws-sdk gem向所有用户授予READ权限。在gem的文档中,我发现了以下内容:
bucket.objects.each do |object|
puts object.key
acl = object.acl
acl.grant(:read).to("TODO: how can I specify 'ALL'???")
object.acl = acl.to_xml
end
这一切都有道理,但是我不太确定如何告知所有用户的授权读取权限?
答案 0 :(得分:28)
您拥有的示例可以工作,但更适合复杂的ACL(访问控制列表)。 Amazon S3有许多可以用于对象的canned-acls。以下代码段将更新存储桶中所有对象的ACL,以便任何人都可以阅读它们。
bucket.objects.each{|obj| obj.acl = :public_read }
或者,您可以在上载(或复制)对象时设置对象的ACL。
# upload a file and set the acl so the world can download it
obj = bucket.objects['object-key'].write(file, :acl => :public_read)
puts obj.public_url
#=> 'https://..."