class AwsClient::S3Wrapper
Constants
- BUCKET_DEFINITION_FILE
- PATH_TO_BUCKETS_DEFINITION
Public Class Methods
new(*params)
click to toggle source
Calls superclass method
AwsClient::Wrapper::new
# File lib/s3_wrapper.rb, line 7 def initialize(*params) super @credentials_key = params[0][:credentials_key] @aws_region = params[0][:region] end
Public Instance Methods
bucket_name_for_function(bucket_function)
click to toggle source
# File lib/s3_wrapper.rb, line 58 def bucket_name_for_function(bucket_function) return "#{bucket_function}.#{@credentials_key}.#{@aws_region}" end
bucket_object_for_bucket_prefix(bucket_prefix_code)
click to toggle source
# File lib/s3_wrapper.rb, line 17 def bucket_object_for_bucket_prefix(bucket_prefix_code) bucket = find_or_create_bucket_for(bucket_prefix_code) return bucket.objects.collect{|object| object.object } # 'object.object' The S3 object belonging to the S3 resource end
bucket_prefixes()
click to toggle source
# File lib/s3_wrapper.rb, line 62 def bucket_prefixes YAML.load_file(PATH_TO_BUCKETS_DEFINITION) end
buckets()
click to toggle source
# File lib/s3_wrapper.rb, line 48 def buckets return resource.buckets end
find_bucket_by(bucket_name)
click to toggle source
# File lib/s3_wrapper.rb, line 22 def find_bucket_by(bucket_name) buckets.select{|bucket| bucket.name == bucket_name }.first end
find_or_create_bucket_for(bucket_prefix_code)
click to toggle source
# File lib/s3_wrapper.rb, line 52 def find_or_create_bucket_for(bucket_prefix_code) bucket_prefix = bucket_prefixes[bucket_prefix_code] full_bucket_name = bucket_name_for_function(bucket_prefix) return find_or_create_bucket(full_bucket_name) end
resource()
click to toggle source
# File lib/s3_wrapper.rb, line 13 def resource @resource ||= Aws::S3::Resource.new(client: client) end
write_file_to_bucket(bucket_prefix_code, file_path)
click to toggle source
# File lib/s3_wrapper.rb, line 36 def write_file_to_bucket(bucket_prefix_code, file_path) bucket = find_or_create_bucket_for(bucket_prefix_code) s3_object = write_to_bucket(bucket, file_path) return s3_object end
write_file_to_explicit_bucket_name(full_bucket_name, file_path)
click to toggle source
# File lib/s3_wrapper.rb, line 42 def write_file_to_explicit_bucket_name(full_bucket_name, file_path) bucket = find_or_create_bucket(full_bucket_name) s3_object = write_to_bucket(bucket, file_path) return s3_object end
write_to_bucket(bucket, file_path)
click to toggle source
# File lib/s3_wrapper.rb, line 26 def write_to_bucket(bucket, file_path) s3_object = bucket.put_object( :key => File.basename(file_path), :body => IO.read(file_path) ) puts "\nRemote file" puts "#{s3_object.public_url}" return s3_object end
Private Instance Methods
find_or_create_bucket(bucket_name)
click to toggle source
# File lib/s3_wrapper.rb, line 68 def find_or_create_bucket(bucket_name) begin bucket = resource.create_bucket(:bucket => bucket_name) rescue Aws::S3::Errors::BucketAlreadyOwnedByYou bucket = find_bucket_by(bucket_name) end return bucket end