Sha256: d7482de9d56795a249b15e1140d4eb437b9e96f5d4b7ef4a67b8fea4f86840cc
Contents?: true
Size: 1.6 KB
Versions: 4
Compression:
Stored size: 1.6 KB
Contents
require 'aws-sdk' module Brillo module Transferrer class S3 include Helpers::ExecHelper include Logger attr_reader :bucket, :filename, :region, :path, :enabled def initialize(config) @enabled = config.transfer_config.enabled @bucket = config.transfer_config.bucket @region = config.transfer_config.region @filename = config.compressed_filename @path = config.compressed_dump_path Aws.config.update( credentials: Aws::Credentials.new( config.transfer_config.access_key_id, config.transfer_config.secret_access_key ), region: config.transfer_config.region ) end def download return unless enabled logger.info("download #{path} from s3 #{bucket} #{filename}") FileUtils.rm path, force: true client.get_object({bucket: bucket, key: filename}, target: path) rescue Aws::S3::Errors::NoSuchBucket create_bucket retry end def upload return unless enabled logger.info("uploading #{path} to s3 #{bucket} #{filename}") object = resource.bucket(bucket).object(filename) object.upload_file(path) rescue Aws::S3::Errors::NoSuchBucket create_bucket retry end private def create_bucket client.create_bucket(bucket: bucket) end def client Aws::S3::Client.new end def resource Aws::S3::Resource.new end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
brillo-1.1.4 | lib/brillo/transferrer/s3.rb |
brillo-1.1.4.pre2 | lib/brillo/transferrer/s3.rb |
brillo-1.1.4.pre1 | lib/brillo/transferrer/s3.rb |
brillo-1.1.3 | lib/brillo/transferrer/s3.rb |