Class: AWS::S3::ObjectVersionCollection
- Inherits:
-
Object
- Object
- AWS::S3::ObjectVersionCollection
- Includes:
- Enumerable
- Defined in:
- lib/aws/s3/object_version_collection.rb
Overview
For S3 buckets with versioning enabled, objects will store versions each time you write to them.
object = bucket.objects['myobj']
object.write('1')
object.write('2')
object.write('3')
object.versions.collect(&:read)
#=> ['1', '2', '3']
To see all the version id for a particular object, access the any particular version, and see the latest version:
object.versions.each do |version| puts version.version_id end
#=> T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq
#=> kAEHC_ysT65bT4P3zyYOP1ELA6ajar_6
#=> itHPX6m8na_sog0cAtkgP3QITEE8v5ij
object.versions['itHPX6m8na_sog0cAtkgP3QITEE8v5ij']
#=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:itHPX6m8na_sog0cAtkgP3QITEE8v5ij>
object.versions.latest
#=> <AWS::S3::ObjectVersion:<<bucket>>:myobj:T2TwAiZ3SmNr7tOfe0QBa4RZnSb3GSLq>
If you know the id of a particular version you can get that object.
bucket.objects['myobj'].version[version_id].delete
Instance Attribute Summary collapse
-
#object ⇒ S3Object
readonly
The object this collection belongs to.
Instance Method Summary collapse
-
#[](version_id) ⇒ ObjectVersion
Returns an object that represents a single version of the #object.
-
#each {|object_version| ... } ⇒ nil
Yields once for each version of the #object.
-
#initialize(object, options = {}) ⇒ ObjectVersionCollection
constructor
A new instance of ObjectVersionCollection.
-
#latest ⇒ ObjectVersion
Returns the latest version of this object.
Constructor Details
#initialize(object, options = {}) ⇒ ObjectVersionCollection
Returns a new instance of ObjectVersionCollection.
55 56 57 58 |
# File 'lib/aws/s3/object_version_collection.rb', line 55 def initialize object, = {} @object = object super() end |
Instance Attribute Details
#object ⇒ S3Object (readonly)
Returns The object this collection belongs to.
52 53 54 |
# File 'lib/aws/s3/object_version_collection.rb', line 52 def object @object end |
Instance Method Details
#[](version_id) ⇒ ObjectVersion
Returns an object that represents a single version of the #object.
63 64 65 |
# File 'lib/aws/s3/object_version_collection.rb', line 63 def [] version_id ObjectVersion.new(object, version_id) end |
#each {|object_version| ... } ⇒ nil
Yields once for each version of the #object.
78 79 80 81 82 83 84 85 |
# File 'lib/aws/s3/object_version_collection.rb', line 78 def each &block object.bucket.versions.with_prefix(object.key).each do |version| if version.key == object.key yield(version) end end nil end |
#latest ⇒ ObjectVersion
Generally you will just want to grab the object key its key.
Returns the latest version of this object.
69 70 71 |
# File 'lib/aws/s3/object_version_collection.rb', line 69 def latest self.find{|version| true } end |