class Aws::S3::Bucket

Public Instance Methods

clear!() click to toggle source

Deletes all objects and versioned objects from this bucket

@example

bucket.clear!

@return [void]

# File lib/aws-sdk-resources/services/s3/bucket.rb, line 14
def clear!
  object_versions.delete
end
delete!() click to toggle source

Deletes all objects and versioned objects from this bucket and then deletes the bucket.

@example

bucket.delete!

@return [void]

# File lib/aws-sdk-resources/services/s3/bucket.rb, line 26
def delete!
  clear!
  delete
end
load() click to toggle source

@api private

# File lib/aws-sdk-resources/services/s3/bucket.rb, line 76
def load
  @data = client.list_buckets.buckets.find { |b| b.name == name }
  raise "unable to load bucket #{name}" if @data.nil?
  self
end
presigned_post(options = {}) click to toggle source

Creates a {PresignedPost} that makes it easy to upload a file from a web browser direct to Amazon S3 using an HTML post form with a file field.

See the {PresignedPost} documentation for more information. @note You must specify `:key` or `:key_starts_with`. All other options

are optional.

@option (see PresignedPost#initialize) @return [PresignedPost] @see PresignedPost

# File lib/aws-sdk-resources/services/s3/bucket.rb, line 67
def presigned_post(options = {})
  PresignedPost.new(
    client.config.credentials,
    client.config.region,
    name,
    options)
end
url(options = {}) click to toggle source

Returns a public URL for this bucket.

bucket = s3.bucket('bucket-name')
bucket.url
#=> "https://bucket-name.s3.amazonaws.com"

You can pass `virtual_host: true` to use the bucket name as the host name.

bucket = s3.bucket('my.bucket.com', virtual_host: true)
bucket.url
#=> "http://my.bucket.com"

@option options [Boolean] :virtual_host (false) When `true`,

the bucket name will be used as the host name. This is useful
when you have a CNAME configured for this bucket.

@return [String] the URL for this bucket.

# File lib/aws-sdk-resources/services/s3/bucket.rb, line 49
def url(options = {})
  if options[:virtual_host]
    "http://#{name}"
  else
    s3_bucket_url
  end
end

Private Instance Methods

bucket_as_hostname?(https) click to toggle source
# File lib/aws-sdk-resources/services/s3/bucket.rb, line 95
def bucket_as_hostname?(https)
  Plugins::S3BucketDns.dns_compatible?(name, https) &&
  !client.config.force_path_style
end
path_escape(name) click to toggle source
# File lib/aws-sdk-resources/services/s3/bucket.rb, line 100
def path_escape(name)
  name.gsub(/[^\/]+/) {|part| Seahorse::Util.uri_escape(part) }
end
s3_bucket_url() click to toggle source
# File lib/aws-sdk-resources/services/s3/bucket.rb, line 84
def s3_bucket_url
  url = client.config.endpoint.dup
  if bucket_as_hostname?(url.scheme == 'https')
    url.host = "#{name}.#{url.host}"
  else
    url.path += '/' unless url.path[-1] == '/'
    url.path += path_escape(name)
  end
  url.to_s
end