Class: AWS::S3::BucketCollection
- Inherits:
-
Object
- Object
- AWS::S3::BucketCollection
- Includes:
- Enumerable
- Defined in:
- lib/aws/s3/bucket_collection.rb
Overview
Represents a collection of buckets.
You can use this to create a bucket:
s3.buckets.create(:name => "mybucket")
You can get a handle for a specific bucket with indifferent access:
bucket = s3.buckets[:mybucket]
bucket = s3.buckets['mybucket']
You can also use it to find out which buckets are in your account:
s3.buckets.collect(&:name)
#=> ['bucket1', 'bucket2', ...]
Instance Method Summary collapse
-
#[](bucket_name) ⇒ Bucket
Returns the Bucket with the given name.
-
#create(bucket_name, options = {}) ⇒ Bucket
Creates and returns a new Bucket.
-
#each(&block) ⇒ nil
Iterates the buckets in this collection.
Instance Method Details
#[](bucket_name) ⇒ Bucket
Returns the Bucket with the given name.
Makes no requests. The returned bucket object can be used to make requets for the bucket and its objects.
105 106 107 |
# File 'lib/aws/s3/bucket_collection.rb', line 105 def [] bucket_name bucket_named(bucket_name) end |
#create(bucket_name, options = {}) ⇒ Bucket
If your bucket name contains one or more periods and it is hosted in a non-US region, you should make requests against the bucket using the S3 endpoint specific to the region in which your bucket resides. For example:
s3 = AWS::S3.new(:s3_endpoint => "s3-eu-west-1.amazonaws.com")
bucket = s3.buckets.create("my.eu.bucket")
For a full list of endpoints and regions, see Regions and Endpoints in the Amazon Web Services General Reference.
Creates and returns a new Bucket. For example:
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/aws/s3/bucket_collection.rb', line 73 def create(bucket_name, = {}) # auto set the location constraint for the user if it is not # passed in and the endpoint is not the us-standard region. don't # override the location constraint though, even it is wrong, unless config.s3_endpoint == 's3.amazonaws.com' or [:location_constraint] then [:location_constraint] = case config.s3_endpoint when 's3-eu-west-1.amazonaws.com' then 'EU' else config.s3_endpoint.match(/^s3-(.*)\.amazonaws\.com$/)[1] end end client.create_bucket(.merge(:bucket_name => bucket_name)) bucket_named(bucket_name) end |
#each(&block) ⇒ nil
Iterates the buckets in this collection.
118 119 120 121 122 123 124 |
# File 'lib/aws/s3/bucket_collection.rb', line 118 def each &block response = client.list_buckets response.buckets.each do |b| yield(bucket_named(b.name, response.owner)) end nil end |