Represents a user who is granted some kind of permission through a Grant. There are three ways to specify a grantee:
You can specify the canonical user ID, for example. When you read an ACL from S3, all grantees will be identified this way, and the display_name attribute will also be provided.
Grantee.new(:canonical_user_id => "8a6925ce4adf588a4f21c32aa379004fef")
You can specify the e-mail address of an AWS customer, for example:
Grantee.new(:amazon_customer_email => 'foo@example.com')
You can specify a group URI, for example:
Grantee.new(:group_uri => 'http://acs.amazonaws.com/groups/global/AllUsers')
For more details about group URIs, see: docs.amazonwebservices.com/AmazonS3/latest/dev/ACLOverview.html
When constructing a grantee, you must provide a value for exactly one of the following attributes:
amazon_customer_email
canonical_user_id
group_uri
@attr [String] amazon_customer_email The e-mail address of
an AWS customer.
@attr [String] canonical_user_id The canonical user ID of an
AWS customer.
@attr [String] group_uri A URI that identifies a particular
group of users.
@attr [String] display_name The display name associated with
the grantee. This is provided by S3 when reading an ACL.
@private
# File lib/aws/s3/access_control_list.rb, line 130 def signal_attribute SIGNAL_ATTRIBUTES.find { |att| send(att) } end
@private
# File lib/aws/s3/access_control_list.rb, line 120 def stag if attr = signal_attribute super + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + " xsi:type=\"#{type_for_attr(attr)}\"" else super end end
@private
# File lib/aws/s3/access_control_list.rb, line 135 def type_for_attr(attr) { :amazon_customer_email => "AmazonCustomerByEmail", :canonical_user_id => "CanonicalUser", :group_uri => "Group" }[attr] end
(see AWS::S3::ACLObject#validate!)
# File lib/aws/s3/access_control_list.rb, line 111 def validate! attr = signal_attribute raise "missing amazon_customer_email, canonical_user_id, "+ "or group_uri" unless attr raise "display_name is invalid with #{attr}" if attr != :canonical_user_id and display_name end