class CartBinaryUploader::S3CloudStorage

Attributes

bucket_access_key[RW]
bucket_secret_key[RW]
region_name[RW]

Public Class Methods

new(bucket_name, bucket_secrete_key, bucket_acess_key, region_name, framework_name, framework_version) click to toggle source
Calls superclass method
# File lib/storage/s3_cloud_storage.rb, line 16
def initialize(bucket_name,
               bucket_secrete_key,
               bucket_acess_key,
               region_name,
               framework_name,
               framework_version)
  @region_name = region_name
  @bucket_secret_key = bucket_secrete_key
  @bucket_access_key = bucket_acess_key
  setup_s3_global
  super(bucket_name, framework_name, framework_version)
end

Public Instance Methods

create_bucket() click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 42
def create_bucket
  @bucket = @storage.bucket(@bucket_name)
end
create_storage() click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 37
def create_storage
  @storage = Aws::S3::Resource.new(credentials: Aws::Credentials.new(@bucket_secret_key, @bucket_access_key),
                                   region: @region_name)
end
download_config_json_file(from_file) click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 64
def download_config_json_file(from_file)
  @bucket.object(from_file)
end
file_on_storage_cloud(file) click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 55
def file_on_storage_cloud(file)
  @bucket.objects.each do |object|
    if object.key == file
      return true
    end
  end
  false
end
setup_s3_global() click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 29
def setup_s3_global
  Aws.config = {
      :access_key_id => @bucket_access_key,
      :secret_access_key => @bucket_secret_key,
      :region => @region_name,
  }
end
upload_file(file_path) click to toggle source
# File lib/storage/s3_cloud_storage.rb, line 46
def upload_file(file_path)
  CartLogger.log_info "Creating #{file_path} on s3"
  @bucket_object = @bucket.object(file_path)
  @bucket_object.upload_file("./#{file_path}", acl:'public-read')
  CartLogger.log_info "Object #{file_path} created with url #{@bucket_object.public_url}"
  @bucket_object.public_url
end