class Aws::S3::Bucket
Public Instance Methods
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
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
@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
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
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
# 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
# File lib/aws-sdk-resources/services/s3/bucket.rb, line 100 def path_escape(name) name.gsub(/[^\/]+/) {|part| Seahorse::Util.uri_escape(part) } end
# 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