class AwsAdapter
Constants
- DEFAULT_REGION
Public Class Methods
new(config)
click to toggle source
# File lib/s3_adapters/aws_adapter.rb, line 8 def initialize(config) @config = config @connected = false @bucket = nil end
Public Instance Methods
delete(file_name)
click to toggle source
# File lib/s3_adapters/aws_adapter.rb, line 47 def delete(file_name) ensure_connected @bucket.objects[file_name].delete end
ensure_connected()
click to toggle source
# File lib/s3_adapters/aws_adapter.rb, line 14 def ensure_connected return if @connected client = AWS::S3.new(:access_key_id => @config[:access_key_id], :secret_access_key => @config[:secret_access_key]) begin create_bucket(client) @connected = true rescue Exception => e puts "Unable to create bucket -- #{e}" @connected = false end end
fetch(file_name)
click to toggle source
# File lib/s3_adapters/aws_adapter.rb, line 34 def fetch(file_name) ensure_connected file = Tempfile.new("temp") bucket_object = @bucket.objects[file_name] File.open(file.path, 'wb') do |f| bucket_object.read do |chunk| f.write chunk end end return file end
store(file_name, file)
click to toggle source
# File lib/s3_adapters/aws_adapter.rb, line 28 def store(file_name, file) ensure_connected bucket_object = @bucket.objects[file_name] bucket_object.write(Pathname.new(file.path)) end
Private Instance Methods
create_bucket(client)
click to toggle source
TODO move to abstract class
# File lib/s3_adapters/aws_adapter.rb, line 55 def create_bucket(client) if @bucket.nil? bucket_name = System.clean("#{System.db_credentials['database'].downcase}-ON-#{System.hostname.downcase}") @bucket = client.buckets[bucket_name] @bucket = client.buckets.create(bucket_name) if !@bucket.exists? end @bucket end