Class: S3::Bucket
- Inherits:
-
Object
- Object
- S3::Bucket
- Extended by:
- Forwardable
- Includes:
- Proxies, Parser
- Defined in:
- lib/s3/bucket.rb
Instance Attribute Summary (collapse)
-
- (Object) name
readonly
Returns the value of attribute name.
-
- (Object) service
readonly
Returns the value of attribute service.
Instance Method Summary (collapse)
-
- (Object) ==(other)
Compares the bucket with other bucket.
-
- (Object) destroy(force = false)
Destroys given bucket.
-
- (Boolean) exists?
Similar to retrieve, but catches S3::Error::NoSuchBucket exceptions and returns false instead.
-
- (Object) host
Returns host name of the bucket according (see #vhost? method).
-
- (Object) inspect
:nodoc:.
-
- (Object) location(reload = false)
Returns location of the bucket, e.g.
-
- (Object) object(key)
Returns the object with the given key.
-
- (Object) objects
Returns the objects in the bucket and caches the result.
-
- (Object) path_prefix
Returns path prefix for non VHOST bucket.
-
- (Object) retrieve
Retrieves the bucket information from the server.
-
- (Object) save(options = {})
Saves the newly built bucket.
-
- (Boolean) vhost?
Returns true if the name of the bucket can be used like VHOST name.
Methods included from Parser
#parse_copy_object_result, #parse_error, #parse_is_truncated, #parse_list_all_my_buckets_result, #parse_list_bucket_result, #parse_location_constraint, #rexml_document
Instance Attribute Details
- (Object) name
Returns the value of attribute name
7 8 9 |
# File 'lib/s3/bucket.rb', line 7 def name @name end |
- (Object) service
Returns the value of attribute service
7 8 9 |
# File 'lib/s3/bucket.rb', line 7 def service @service end |
Instance Method Details
- (Object) ==(other)
Compares the bucket with other bucket. Returns true if the names of the buckets are the same, and both have the same services (see Service equality)
29 30 31 |
# File 'lib/s3/bucket.rb', line 29 def ==(other) self.name == other.name and self.service == other.service end |
- (Object) destroy(force = false)
Destroys given bucket. Raises an S3::Error::BucketNotEmpty exception if the bucket is not empty. You can destroy non-empty bucket passing true (to force destroy)
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/s3/bucket.rb', line 45 def destroy(force = false) delete_bucket true rescue Error::BucketNotEmpty if force objects.destroy_all retry else raise end end |
- (Boolean) exists?
Similar to retrieve, but catches S3::Error::NoSuchBucket exceptions and returns false instead.
35 36 37 38 39 40 |
# File 'lib/s3/bucket.rb', line 35 def exists? retrieve true rescue Error::NoSuchBucket false end |
- (Object) host
Returns host name of the bucket according (see #vhost? method)
78 79 80 |
# File 'lib/s3/bucket.rb', line 78 def host vhost? ? "#@name.#{HOST}" : "#{HOST}" end |
- (Object) inspect
:nodoc:
100 101 102 |
# File 'lib/s3/bucket.rb', line 100 def inspect #:nodoc: "#<#{self.class}:#{name}>" end |
- (Object) location(reload = false)
Returns location of the bucket, e.g. "EU"
21 22 23 24 |
# File 'lib/s3/bucket.rb', line 21 def location(reload = false) return @location if defined?(@location) and not reload @location = location_constraint end |
- (Object) object(key)
Returns the object with the given key. Does not check whether the object exists. But also does not issue any HTTP requests, so it's much faster than objects.find
96 97 98 |
# File 'lib/s3/bucket.rb', line 96 def object(key) Object.send(:new, self, :key => key) end |
- (Object) objects
Returns the objects in the bucket and caches the result
89 90 91 |
# File 'lib/s3/bucket.rb', line 89 def objects Proxy.new(lambda { list_bucket }, :owner => self, :extend => ObjectsExtension) end |
- (Object) path_prefix
Returns path prefix for non VHOST bucket. Path prefix is used instead of VHOST name, e.g. "bucket_name/"
84 85 86 |
# File 'lib/s3/bucket.rb', line 84 def path_prefix vhost? ? "" : "#@name/" end |
- (Object) retrieve
Retrieves the bucket information from the server. Raises an S3::Error exception if the bucket doesn't exist or you don't have access to it, etc.
15 16 17 18 |
# File 'lib/s3/bucket.rb', line 15 def retrieve bucket_headers self end |
- (Object) save(options = {})
Saves the newly built bucket.
Options
-
:location - location of the bucket (:eu or us)
-
Any other options are passed through to Connection#request
64 65 66 67 68 |
# File 'lib/s3/bucket.rb', line 64 def save( = {}) = {:location => } unless .is_a?(Hash) create_bucket_configuration() true end |
- (Boolean) vhost?
Returns true if the name of the bucket can be used like VHOST name. If the bucket contains characters like underscore it can't be used as VHOST (e.g. bucket_name.s3.amazonaws.com)
73 74 75 |
# File 'lib/s3/bucket.rb', line 73 def vhost? "#@name.#{HOST}" =~ /\A#{URI::REGEXP::PATTERN::HOSTNAME}\Z/ end |