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

Version Path
aws_client-0.1.3 lib/s32_wrapper.rb
aws_client-0.1.2 lib/s32_wrapper.rb
aws_client-0.1.1 lib/s32_wrapper.rb
aws_client-0.0.93 lib/s32_wrapper.rb
aws_client-0.0.92 lib/s32_wrapper.rb
aws_client-0.0.91 lib/s32_wrapper.rb
aws_client-0.0.9 lib/s32_wrapper.rb
aws_client-0.0.8 lib/s32_wrapper.rb
aws_client-0.0.7 lib/s32_wrapper.rb