Class: Ungulate::S3Bucket

Inherits:
Object
  • Object
show all
Defined in:
lib/ungulate/s3_storage.rb

Instance Method Summary collapse

Constructor Details

#initialize(s3, name, options = {}) ⇒ S3Bucket

Returns a new instance of S3Bucket.



13
14
15
16
17
# File 'lib/ungulate/s3_storage.rb', line 13

def initialize(s3, name, options = {})
  @bucket = s3.bucket(name)
  @listener = options[:listener]
  @logger = options[:logger] || ::Logger.new($stdout)
end

Instance Method Details

#clearObject



37
38
39
# File 'lib/ungulate/s3_storage.rb', line 37

def clear
  @bucket.clear
end

#retrieve(key) ⇒ Object



32
33
34
35
# File 'lib/ungulate/s3_storage.rb', line 32

def retrieve(key)
  @logger.info "Retrieving #{key}"
  @bucket.get(key)
end

#store(key, value, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ungulate/s3_storage.rb', line 19

def store(key, value, options = {})
  @logger.info "Storing #{key} with size #{value.size}, content-type #{options[:content_type]}"

  @bucket.put(key, value, {}, 'public-read', {
    'Content-Type' => options[:content_type],
    'Cache-Control' => 'max-age=2629743'
  })

  if @listener && options[:version]
    @listener.storage_complete(options[:version])
  end
end