Class: Configuration::S3SourceStoreBase::S3Object

Inherits:
Object
  • Object
show all
Defined in:
lib/httpimagestore/configuration/s3.rb

Direct Known Subclasses

CacheObject

Instance Method Summary collapse

Constructor Details

#initialize(client, bucket, key) ⇒ S3Object

Returns a new instance of S3Object.



158
159
160
161
162
# File 'lib/httpimagestore/configuration/s3.rb', line 158

def initialize(client, bucket, key)
  @client = client
  @bucket = bucket
  @key = key
end

Instance Method Details

#content_typeObject



187
188
189
# File 'lib/httpimagestore/configuration/s3.rb', line 187

def content_type
  s3_object.head[:content_type]
end

#private_urlObject



179
180
181
# File 'lib/httpimagestore/configuration/s3.rb', line 179

def private_url
  s3_object.url_for(:read, expires: 60 * 60 * 24 * 365 * 20).to_s # expire in 20 years
end

#public_urlObject



183
184
185
# File 'lib/httpimagestore/configuration/s3.rb', line 183

def public_url
  s3_object.public_url.to_s
end

#read(max_bytes = nil) ⇒ Object



169
170
171
172
173
# File 'lib/httpimagestore/configuration/s3.rb', line 169

def read(max_bytes = nil)
  options = {}
  options[:range] = 0..max_bytes if max_bytes
  s3_object.read(options)
end

#s3_objectObject



164
165
166
167
# File 'lib/httpimagestore/configuration/s3.rb', line 164

def s3_object
  return @s3_object if @s3_object
  @s3_object = @client.buckets[@bucket].objects[@key]
end

#write(data, options = {}) ⇒ Object



175
176
177
# File 'lib/httpimagestore/configuration/s3.rb', line 175

def write(data, options = {})
  s3_object.write(data, options)
end