I am writing the code to grant READ permissions to all users using aws-sdk gem. In the documentation for the gem, I found the following:
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
It all makes sense, however I'm not quite sure how can I tell the grant read permission to ALL users?
The example you have can work, but is more suited for complicated ACLs (access control lists). Amazon S3 has a number of canned-acls you can use for your objects. The follow snippet will update the ACL for all objects in your bucket so anyone can read them.
bucket.objects.each{|obj| obj.acl = :public_read }
Alternatively, you can set the ACL for an object when you upload (or copy) it.
# 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://..."
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With