class S3cmdAdapter

Public Class Methods

new(config) click to toggle source
# File lib/s3_adapters/s3cmd_adapter.rb, line 5
def initialize(config)
  @config = config
  @connected = false
end

Public Instance Methods

delete(file_name) click to toggle source
# 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_connected() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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

Private Instance Methods

bucket() click to toggle source

TODO move to abstract class

# File lib/s3_adapters/s3cmd_adapter.rb, line 40
def bucket
  @bucket ||= System.clean("#{System.db_credentials['database'].downcase}-ON-#{System.hostname.downcase}")
end