You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::S3::ObjectAcl

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb

Defined Under Namespace

Classes: Collection

Actions collapse

Associations collapse

Read-Only Attributes collapse

Instance Method Summary collapse

Constructor Details

#initialize(bucket_name, object_key, options = {}) ⇒ ObjectAcl #initialize(options = {}) ⇒ ObjectAcl

Returns a new instance of ObjectAcl

Overloads:

  • #initialize(bucket_name, object_key, options = {}) ⇒ ObjectAcl

    Parameters:

    • bucket_name (String)
    • object_key (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ ObjectAcl

    Options Hash (options):

    • :bucket_name (required, String)
    • :object_key (required, String)
    • :client (Client)


21
22
23
24
25
26
27
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 21

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @bucket_name = extract_bucket_name(args, options)
  @object_key = extract_object_key(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
end

Instance Method Details

#bucket_nameString

Returns:

  • (String)


32
33
34
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 32

def bucket_name
  @bucket_name
end

#clientClient

Returns:



62
63
64
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 62

def client
  @client
end

#dataTypes::GetObjectAclOutput

Returns the data for this Aws::S3::ObjectAcl. Calls Client#get_object_acl if #data_loaded? is false.

Returns:



85
86
87
88
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 85

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



93
94
95
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 93

def data_loaded?
  !!@data
end

#grantsArray<Types::Grant>

A list of grants.

Returns:



48
49
50
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 48

def grants
  data.grants
end

#loadself Also known as: reload

Loads, or reloads #data for the current Aws::S3::ObjectAcl. Returns self making it possible to chain methods.

object_acl.reload.data

Returns:

  • (self)


72
73
74
75
76
77
78
79
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 72

def load
  resp = @client.get_object_acl(
    bucket: @bucket_name,
    key: @object_key
  )
  @data = resp.data
  self
end

#objectObject

Returns:



168
169
170
171
172
173
174
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 168

def object
  Object.new(
    bucket_name: @bucket_name,
    key: @object_key,
    client: @client
  )
end

#object_keyString

Returns:

  • (String)


37
38
39
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 37

def object_key
  @object_key
end

#ownerTypes::Owner

Returns:



42
43
44
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 42

def owner
  data.owner
end

#put(options = {}) ⇒ Types::PutObjectAclOutput

Examples:

Request syntax with placeholder values


object_acl.put({
  acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
  access_control_policy: {
    grants: [
      {
        grantee: {
          display_name: "DisplayName",
          email_address: "EmailAddress",
          id: "ID",
          type: "CanonicalUser", # required, accepts CanonicalUser, AmazonCustomerByEmail, Group
          uri: "URI",
        },
        permission: "FULL_CONTROL", # accepts FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP
      },
    ],
    owner: {
      display_name: "DisplayName",
      id: "ID",
    },
  },
  content_md5: "ContentMD5",
  grant_full_control: "GrantFullControl",
  grant_read: "GrantRead",
  grant_read_acp: "GrantReadACP",
  grant_write: "GrantWrite",
  grant_write_acp: "GrantWriteACP",
  request_payer: "requester", # accepts requester
  version_id: "ObjectVersionId",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :acl (String)

    The canned ACL to apply to the object.

  • :access_control_policy (Types::AccessControlPolicy)
  • :content_md5 (String)
  • :grant_full_control (String)

    Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

  • :grant_read (String)

    Allows grantee to list the objects in the bucket.

  • :grant_read_acp (String)

    Allows grantee to read the bucket ACL.

  • :grant_write (String)

    Allows grantee to create, overwrite, and delete any object in the bucket.

  • :grant_write_acp (String)

    Allows grantee to write the ACL for the applicable bucket.

  • :request_payer (String)

    Confirms that the requester knows that she or he will be charged for the request. Bucket owners need not specify this parameter in their requests. Documentation on downloading objects from requester pays buckets can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html

  • :version_id (String)

    VersionId used to reference a specific version of the object.

Returns:



156
157
158
159
160
161
162
163
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 156

def put(options = {})
  options = options.merge(
    bucket: @bucket_name,
    key: @object_key
  )
  resp = @client.put_object_acl(options)
  resp.data
end

#request_chargedString

If present, indicates that the requester was successfully charged for the request.

Returns:

  • (String)


55
56
57
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/object_acl.rb', line 55

def request_charged
  data.request_charged
end