Class: S3::Bucket
- Inherits:
-
Object
- Object
- S3::Bucket
- Extended by:
- Forwardable
- Includes:
- Proxies, Parser
- Defined in:
- lib/s3/bucket.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#service ⇒ Object
readonly
Returns the value of attribute service.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Compares the bucket with other bucket.
-
#destroy(force = false) ⇒ Object
Destroys given bucket.
-
#exists? ⇒ Boolean
Similar to retrieve, but catches S3::Error::NoSuchBucket exceptions and returns false instead.
-
#host ⇒ Object
Returns host name of the bucket according (see #vhost? method).
-
#inspect ⇒ Object
:nodoc:.
-
#location(reload = false) ⇒ Object
Returns location of the bucket, e.g.
-
#objects ⇒ Object
Returns the objects in the bucket and caches the result (see #reload method).
-
#path_prefix ⇒ Object
Returns path prefix for non
VHOST
bucket. -
#retrieve ⇒ Object
Retrieves the bucket information from the server.
-
#save(options = {}) ⇒ Object
Saves the newly built bucket.
-
#vhost? ⇒ Boolean
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_list_all_my_buckets_result, #parse_list_bucket_result, #parse_location_constraint, #rexml_document
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
7 8 9 |
# File 'lib/s3/bucket.rb', line 7 def name @name end |
#service ⇒ Object
Returns the value of attribute service.
7 8 9 |
# File 'lib/s3/bucket.rb', line 7 def service @service end |
Instance Method Details
#==(other) ⇒ Object
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)
32 33 34 |
# File 'lib/s3/bucket.rb', line 32 def ==(other) self.name == other.name and self.service == other.service end |
#destroy(force = false) ⇒ Object
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)
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/s3/bucket.rb', line 48 def destroy(force = false) delete_bucket true rescue Error::BucketNotEmpty if force objects.destroy_all retry else raise end end |
#exists? ⇒ Boolean
Similar to retrieve, but catches S3::Error::NoSuchBucket exceptions and returns false instead.
38 39 40 41 42 43 |
# File 'lib/s3/bucket.rb', line 38 def exists? retrieve true rescue Error::NoSuchBucket false end |
#host ⇒ Object
Returns host name of the bucket according (see #vhost? method)
83 84 85 |
# File 'lib/s3/bucket.rb', line 83 def host vhost? ? "#@name.#{HOST}" : "#{HOST}" end |
#inspect ⇒ Object
:nodoc:
99 100 101 |
# File 'lib/s3/bucket.rb', line 99 def inspect #:nodoc: "#<#{self.class}:#{name}>" end |
#location(reload = false) ⇒ Object
Returns location of the bucket, e.g. “EU”
21 22 23 24 25 26 27 |
# File 'lib/s3/bucket.rb', line 21 def location(reload = false) if reload or @location.nil? @location = location_constraint else @location end end |
#objects ⇒ Object
Returns the objects in the bucket and caches the result (see #reload method).
95 96 97 |
# File 'lib/s3/bucket.rb', line 95 def objects Proxy.new(lambda { list_bucket }, :owner => self, :extend => ObjectsExtension) end |
#path_prefix ⇒ Object
Returns path prefix for non VHOST
bucket. Path prefix is used instead of VHOST
name, e.g. “bucket_name/”
89 90 91 |
# File 'lib/s3/bucket.rb', line 89 def path_prefix vhost? ? "" : "#@name/" end |
#retrieve ⇒ Object
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 |
#save(options = {}) ⇒ Object
Saves the newly built bucket.
Options
-
:location
- location of the bucket (:eu
orus
) -
Any other options are passed through to Connection#request
67 68 69 70 71 72 73 |
# File 'lib/s3/bucket.rb', line 67 def save( = {}) unless .is_a?(Hash) = {:location => } end create_bucket_configuration() true end |
#vhost? ⇒ Boolean
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
)
78 79 80 |
# File 'lib/s3/bucket.rb', line 78 def vhost? "#@name.#{HOST}" =~ /\A#{URI::REGEXP::PATTERN::HOSTNAME}\Z/ end |