Sha256: d7dc03a49363a69d58a0c3d3e6e82fa4c714f3207a504052c349eb48ea847f58
Contents?: true
Size: 1.24 KB
Versions: 9
Compression:
Stored size: 1.24 KB
Contents
module AwsClient class S32Wrapper < AwsClient::Wrapper def initialize(*params) super @credentials_key = params[0][:credentials_key] @aws_region = params[0][:region] end def resource @resource ||= Aws::S3::Resource.new(client: client) end def buckets return resource.buckets end def find_bucket_by(bucket_name) buckets.select{|bucket| bucket.name == bucket_name }.first end 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 def write_local_file_to_bucket(bucket_name, file_path) key = File.basename(file_path) body = IO.read(file_path) s3_object = write_to_s3_bucket(key, body, bucket_name) return s3_object end def write_data_to_bucket(bucket_name, data, filename) s3_object = write_to_s3_bucket(filename, data, bucket_name) return s3_object end def write_to_s3_bucket(key, body, bucket_name) bucket = find_or_create_bucket(bucket_name) s3_object = bucket.put_object(:key => key, :body => body) end end end
Version data entries
9 entries across 9 versions & 1 rubygems