Class: Dandelion::Adapter::S3

Inherits:
Base
  • Object
show all
Defined in:
lib/dandelion/adapter/s3.rb

Instance Method Summary collapse

Methods inherited from Base

adapter, create_adapter, requires_gems

Constructor Details

#initialize(config) ⇒ S3

Returns a new instance of S3.



7
8
9
10
11
12
13
14
15
# File 'lib/dandelion/adapter/s3.rb', line 7

def initialize(config)
  require 'aws/s3'
  
  @access_key_id = config[:access_key_id]
  @secret_access_key = config[:secret_access_key]
  @bucket_name = config[:bucket_name]
  @host = config[:host]
  @path = config[:path]
end

Instance Method Details

#delete(file) ⇒ Object



28
29
30
31
# File 'lib/dandelion/adapter/s3.rb', line 28

def delete(file)
  s3connect!
  AWS::S3::S3Object.delete(path(file), @bucket_name)
end

#read(file) ⇒ Object



17
18
19
20
21
# File 'lib/dandelion/adapter/s3.rb', line 17

def read(file)
  s3connect!
  return nil unless AWS::S3::S3Object.exists?(path(file), @bucket_name)
  AWS::S3::S3Object.value(path(file), @bucket_name)
end

#to_sObject



33
34
35
# File 'lib/dandelion/adapter/s3.rb', line 33

def to_s
  "s3://#{@access_key_id}@#{@bucket_name}/#{@path}"
end

#write(file, data) ⇒ Object



23
24
25
26
# File 'lib/dandelion/adapter/s3.rb', line 23

def write(file, data)
  s3connect!
  AWS::S3::S3Object.store(path(file), data, @bucket_name)
end