Class: Aws::S3::Resource

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

Overview

This class provides a resource oriented interface for S3. To create a resource object:

resource = Aws::S3::Resource.new(region: 'us-west-2')

You can supply a client object with custom configuration that will be used for all resource operations. If you do not pass :client, a default client will be constructed.

client = Aws::S3::Client.new(region: 'us-west-2')
resource = Aws::S3::Resource.new(client: client)

Actions collapse

Associations collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Resource

Returns a new instance of Resource.

Parameters:

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

Options Hash (options):



25
26
27
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/resource.rb', line 25

def initialize(options = {})
  @client = options[:client] || Client.new(options)
end

Instance Method Details

#bucket(name) ⇒ Bucket

Parameters:

  • name (String)

Returns:



86
87
88
89
90
91
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/resource.rb', line 86

def bucket(name)
  Bucket.new(
    name: name,
    client: @client
  )
end

#buckets(options = {}) ⇒ Bucket::Collection

Examples:

Request syntax with placeholder values


s3.buckets()

Parameters:

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

    ({})

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/resource.rb', line 98

def buckets(options = {})
  batches = Enumerator.new do |y|
    batch = []
    resp = @client.list_buckets(options)
    resp.data.buckets.each do |b|
      batch << Bucket.new(
        name: b.name,
        data: b,
        client: @client
      )
    end
    y.yield(batch)
  end
  Bucket::Collection.new(batches)
end

#clientClient

Returns:



30
31
32
# File 'gems/aws-sdk-s3/lib/aws-sdk-s3/resource.rb', line 30

def client
  @client
end

#create_bucket(options = {}) ⇒ Bucket

Examples:

Request syntax with placeholder values


bucket = s3.create_bucket({
  acl: "private", # accepts private, public-read, public-read-write, authenticated-read
  bucket: "BucketName", # required
  create_bucket_configuration: {
    location_constraint: "EU", # accepts EU, eu-west-1, us-west-1, us-west-2, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, sa-east-1, cn-north-1, eu-central-1
  },
  grant_full_control: "GrantFullControl",
  grant_read: "GrantRead",
  grant_read_acp: "GrantReadACP",
  grant_write: "GrantWrite",
  grant_write_acp: "GrantWriteACP",
  object_lock_enabled_for_bucket: false,
})

Parameters:

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

    ({})

Options Hash (options):

  • :acl (String)

    The canned ACL to apply to the bucket.

  • :bucket (required, String)

    The name of the bucket to create.

  • :create_bucket_configuration (Types::CreateBucketConfiguration)

    The configuration information for the bucket.

  • :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.

  • :object_lock_enabled_for_bucket (Boolean)

    Specifies whether you want S3 Object Lock to be enabled for the new bucket.

Returns:



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

def create_bucket(options = {})
  resp = @client.create_bucket(options)
  Bucket.new(
    name: options[:bucket],
    client: @client
  )
end