Class: AWS::S3::ObjectCollection
- Inherits:
-
Object
- Object
- AWS::S3::ObjectCollection
- Includes:
- Enumerable
- Defined in:
- lib/aws/s3/object_collection.rb
Overview
Represents a collection of S3 objects.
Getting an S3Object by Key
If you know the key of the object you want, you can reference it this way:
# this will not make any requests against S3
object = bucket.objects['foo.jpg']
object.key #=> 'foo.jpg'
Finding objects with a Prefix
Given a bucket with the following keys:
photos/sunset.jpg
photos/sunrise.jpg
photos/winter.jpg
videos/comedy.mpg
videos/dancing.mpg
You can list objects that share a prefix:
bucket.objects.with_prefix('videos').collect(&:key)
#=> ['videos/comedy.mpg', 'videos/dancing.mpg']
Exploring Objects with a Tree Interface
Given a bucket with the following keys:
README.txt
videos/wedding.mpg
videos/family_reunion.mpg
photos/2010/house.jpg
photos/2011/fall/leaves.jpg
photos/2011/summer/vacation.jpg
photos/2011/summer/family.jpg
tree = bucket.objects.with_prefix.prefix('photos').as_tree
directories = tree.children.select(&:branch?).collect(&:prefix)
#=> ['photos/2010', 'photos/2011']
Instance Attribute Summary collapse
-
#bucket ⇒ Bucket
readonly
The bucket this collection belongs to.
Attributes included from PrefixedCollection
Instance Method Summary collapse
-
#[](key) ⇒ S3Object
Returns an S3Object given its name.
-
#create(key, *args) ⇒ S3Object
Writes a new object to S3.
-
#each(options = {}, &block) ⇒ nil
Iterates the collection, yielding instances of S3Object.
-
#initialize(bucket, options = {}) ⇒ ObjectCollection
constructor
A new instance of ObjectCollection.
-
#with_prefix(prefix, mode = :replace) ⇒ Collection
Returns a new collection with a different prefix.
Constructor Details
#initialize(bucket, options = {}) ⇒ ObjectCollection
Returns a new instance of ObjectCollection.
66 67 68 69 |
# File 'lib/aws/s3/object_collection.rb', line 66 def initialize(bucket, = {}) @bucket = bucket super end |
Instance Attribute Details
#bucket ⇒ Bucket (readonly)
Returns The bucket this collection belongs to.
72 73 74 |
# File 'lib/aws/s3/object_collection.rb', line 72 def bucket @bucket end |
Instance Method Details
#[](key) ⇒ S3Object
Returns an S3Object given its name. For example:
96 97 98 |
# File 'lib/aws/s3/object_collection.rb', line 96 def [] key S3Object.new(bucket, key.to_s) end |
#create(key, *args) ⇒ S3Object
Writes a new object to S3.
The first param is the key you want to write this object to. All other params/options are documented in S3Object#write.
83 84 85 |
# File 'lib/aws/s3/object_collection.rb', line 83 def create key, *args self[key].write(*args) end |
#each(options = {}, &block) ⇒ nil
Iterates the collection, yielding instances of S3Object.
Use break or raise an exception to terminate the enumeration.
115 116 117 |
# File 'lib/aws/s3/object_collection.rb', line 115 def each = {}, &block super end |
#with_prefix(prefix, mode = :replace) ⇒ Collection
Returns a new collection with a different prefix
101 102 103 |
# File 'lib/aws/s3/object_collection.rb', line 101 def with_prefix prefix, mode = :replace super(prefix, mode) end |