Class: S3cmdAdapter

Inherits:
Object
  • Object
show all
Includes:
System
Defined in:
lib/s3_adapters/s3cmd_adapter.rb

Instance Method Summary collapse

Methods included from System

clean, db_credentials, hostname, prompt, run, tarzip_folders, unzip_file

Constructor Details

#initialize(config) ⇒ S3cmdAdapter

Returns a new instance of S3cmdAdapter.



5
6
7
8
# File 'lib/s3_adapters/s3cmd_adapter.rb', line 5

def initialize(config)
  @config = config
  @connected = false
end

Instance Method Details

#delete(file_name) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/s3_adapters/s3cmd_adapter.rb', line 28

def delete(file_name)
  #TODO use s3cmd ls here to create 'find' like functionality similar to aws_adapter
  begin
    System.run("s3cmd del s3://#{bucket}/#{file_name}")
  rescue
    raise "Could not delete #{file_name}."
  end
end

#ensure_connectedObject



10
11
12
13
14
# File 'lib/s3_adapters/s3cmd_adapter.rb', line 10

def ensure_connected
  return if @connected
  System.run("s3cmd mb s3://#{bucket}")
  @connected = true
end

#fetch(file_name) ⇒ Object



21
22
23
24
25
26
# File 'lib/s3_adapters/s3cmd_adapter.rb', line 21

def fetch(file_name)
  ensure_connected
  file = Tempfile.new("temp")
  System.run("s3cmd get --force s3://#{bucket}/#{file_name} #{file.path}")
  file
end

#store(file_name, file) ⇒ Object



16
17
18
19
# File 'lib/s3_adapters/s3cmd_adapter.rb', line 16

def store(file_name, file)
  ensure_connected
  System.run("s3cmd put #{file.path} s3://#{bucket}/#{file_name}")
end