class Aws::S3::Resource

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)

Public Class Methods

new(options = {}) click to toggle source

@param options ({}) @option options [Client] :client

# File lib/aws-sdk-s3/resource.rb, line 27
def initialize(options = {})
  @client = options[:client] || Client.new(options)
end

Public Instance Methods

bucket(name) click to toggle source

@param [String] name @return [Bucket]

# File lib/aws-sdk-s3/resource.rb, line 90
def bucket(name)
  Bucket.new(
    name: name,
    client: @client
  )
end
buckets(options = {}) click to toggle source

@example Request syntax with placeholder values

s3.buckets()

@param [Hash] options ({}) @return [Bucket::Collection]

# File lib/aws-sdk-s3/resource.rb, line 102
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
client() click to toggle source

@return [Client]

# File lib/aws-sdk-s3/resource.rb, line 32
def client
  @client
end
create_bucket(options = {}) click to toggle source

@example 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: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-north-1, eu-south-1, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2
  },
  grant_full_control: "GrantFullControl",
  grant_read: "GrantRead",
  grant_read_acp: "GrantReadACP",
  grant_write: "GrantWrite",
  grant_write_acp: "GrantWriteACP",
  object_lock_enabled_for_bucket: false,
})

@param [Hash] options ({}) @option options [String] :acl

The canned ACL to apply to the bucket.

@option options [required, String] :bucket

The name of the bucket to create.

@option options [Types::CreateBucketConfiguration] :create_bucket_configuration

The configuration information for the bucket.

@option options [String] :grant_full_control

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

@option options [String] :grant_read

Allows grantee to list the objects in the bucket.

@option options [String] :grant_read_acp

Allows grantee to read the bucket ACL.

@option options [String] :grant_write

Allows grantee to create new objects in the bucket.

For the bucket and object owners of existing objects, also allows
deletions and overwrites of those objects.

@option options [String] :grant_write_acp

Allows grantee to write the ACL for the applicable bucket.

@option options [Boolean] :object_lock_enabled_for_bucket

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

@return [Bucket]

# File lib/aws-sdk-s3/resource.rb, line 78
def create_bucket(options = {})
  @client.create_bucket(options)
  Bucket.new(
    name: options[:bucket],
    client: @client
  )
end