class AWS::S3::ACL::Policy
The ACL::Policy class lets you inspect and modify access controls for buckets and objects. A policy is made up of one or more Grants which specify a permission and a Grantee to whom that permission is granted.
Buckets and objects are given a default access policy which contains one grant permitting the owner of the bucket or object FULL_CONTROL over its contents. This means they can read the object, write to the object, as well as read and write its policy.
The acl
method for both buckets and objects returns the policy
object for that entity:
policy = Bucket.acl('some-bucket')
The grants
method of a policy exposes its grants. You can
treat this collection as an array and push new grants onto it:
policy.grants << grant
Check the documentation for Grant and Grantee for more details on how to create new grants.
Attributes
Public Class Methods
# File lib/aws/s3/acl.rb, line 123 def initialize(attributes = {}) @attributes = attributes @grants = [].extend(GrantListExtensions) extract_owner! if owner? extract_grants! if grants? end
Public Instance Methods
The xml representation of the policy.
# File lib/aws/s3/acl.rb, line 131 def to_xml Builder.new(owner, grants).to_s end
Private Instance Methods
# File lib/aws/s3/acl.rb, line 149 def extract_grants! attributes['access_control_list']['grant'].each do |grant| grants << Grant.new(grant) end end
# File lib/aws/s3/acl.rb, line 145 def extract_owner! @owner = Owner.new(attributes.delete('owner')) end
# File lib/aws/s3/acl.rb, line 141 def grants? (attributes.has_key?('access_control_list') && attributes['access_control_list']['grant']) || !grants.empty? end
# File lib/aws/s3/acl.rb, line 137 def owner? attributes.has_key?('owner') || !owner.nil? end