Class: AWS::S3::ObjectVersion
- Inherits:
-
Object
- Object
- AWS::S3::ObjectVersion
- Defined in:
- lib/aws/s3/object_version.rb
Overview
Represents a single version of an S3Object.
When you enable versioning on a S3 bucket, writing to an object will create an object version instead of replacing the existing object.
Instance Attribute Summary collapse
-
#object ⇒ S3Object
readonly
The object this is a version of.
-
#version_id ⇒ String
readonly
The unique version identifier.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
(also: #eql?)
Returns true if the other object version has the same s3 object key and version id.
- #bucket ⇒ Object
-
#content_length ⇒ Integer
Size of the object in bytes.
-
#content_type ⇒ String
Returns the content type as reported by S3, defaults to an empty string when not provided during upload.
-
#delete ⇒ nil
Deletes this object version from S3.
-
#delete_marker? ⇒ Boolean
If you delete an object in a versioned bucket, a delete marker is created.
-
#etag ⇒ String
Returns the object’s ETag.
-
#head ⇒ Object
A head object response with metatadata, content_length, content_type and etag.
-
#initialize(object, version_id, options = {}) ⇒ ObjectVersion
constructor
A new instance of ObjectVersion.
-
#key ⇒ String
The objects unique key.
-
#latest? ⇒ Boolean
Returns this if this is the latest version of the object, false if the object has been written to since this version was created.
-
#metadata ⇒ ObjectMetadata
Returns an instance of ObjectMetadata representing the metadata for this object.
-
#read(options = {}, &block) ⇒ Object
Reads the data from this object version.
Constructor Details
#initialize(object, version_id, options = {}) ⇒ ObjectVersion
Returns a new instance of ObjectVersion.
34 35 36 37 38 39 |
# File 'lib/aws/s3/object_version.rb', line 34 def initialize(object, version_id, = {}) @object = object @version_id = version_id @delete_marker = [:delete_marker] super end |
Instance Attribute Details
#object ⇒ S3Object (readonly)
Returns the object this is a version of.
42 43 44 |
# File 'lib/aws/s3/object_version.rb', line 42 def object @object end |
#version_id ⇒ String (readonly)
Returns The unique version identifier.
49 50 51 |
# File 'lib/aws/s3/object_version.rb', line 49 def version_id @version_id end |
Instance Method Details
#==(other) ⇒ Boolean Also known as: eql?
Returns true if the other object version has the same s3 object key and version id.
126 127 128 129 130 |
# File 'lib/aws/s3/object_version.rb', line 126 def ==(other) other.kind_of?(ObjectVersion) and other.object == object and other.version_id == version_id end |
#bucket ⇒ Object
44 45 46 |
# File 'lib/aws/s3/object_version.rb', line 44 def bucket object.bucket end |
#content_length ⇒ Integer
Returns Size of the object in bytes.
69 70 71 |
# File 'lib/aws/s3/object_version.rb', line 69 def content_length head.content_length end |
#content_type ⇒ String
S3 does not compute content-type. It reports the content-type as was reported during the file upload.
Returns the content type as reported by S3, defaults to an empty string when not provided during upload.
76 77 78 |
# File 'lib/aws/s3/object_version.rb', line 76 def content_type head.content_type end |
#delete ⇒ nil
Deletes this object version from S3.
96 97 98 |
# File 'lib/aws/s3/object_version.rb', line 96 def delete object.delete(:version_id => @version_id) end |
#delete_marker? ⇒ Boolean
If you delete an object in a versioned bucket, a delete marker is created.
110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/aws/s3/object_version.rb', line 110 def delete_marker? if @delete_marker.nil? begin # S3 responds with a 405 (method not allowed) when you try # to HEAD an s3 object version that is a delete marker ['foo'] @delete_marker = false rescue Errors::MethodNotAllowed => error @delete_marker = true end end @delete_marker end |
#etag ⇒ String
Returns the object’s ETag
64 65 66 |
# File 'lib/aws/s3/object_version.rb', line 64 def etag head.etag end |
#head ⇒ Object
Returns A head object response with metatadata, content_length, content_type and etag.
58 59 60 |
# File 'lib/aws/s3/object_version.rb', line 58 def head object.head(:version_id => @version_id) end |
#key ⇒ String
Returns The objects unique key.
52 53 54 |
# File 'lib/aws/s3/object_version.rb', line 52 def key object.key end |
#latest? ⇒ Boolean
Returns this if this is the latest version of the object, false if the object has been written to since this version was created.
103 104 105 |
# File 'lib/aws/s3/object_version.rb', line 103 def latest? object.versions.latest.version_id == self.version_id end |
#metadata ⇒ ObjectMetadata
Returns an instance of ObjectMetadata representing the metadata for this object.
82 83 84 |
# File 'lib/aws/s3/object_version.rb', line 82 def object.(:version_id => @version_id) end |
#read(options = {}, &block) ⇒ Object
Reads the data from this object version.
90 91 92 |
# File 'lib/aws/s3/object_version.rb', line 90 def read = {}, &block object.read(.merge(:version_id => @version_id), &block) end |