class Dustcart::Resource::Output::AmazonS3

output: S3 ignore :reek:UncommunicativeModuleName

Attributes

zip_file_name[R]

Public Class Methods

new(from_dir, mode, &block) click to toggle source
Calls superclass method
# File lib/dustcart/output/amazon_s3.rb, line 17
def initialize(from_dir, mode, &block)
  super(from_dir, mode, &block)

  @zip_file_name = "#{from_dir}.zip"
end

Public Instance Methods

precheck() click to toggle source
Calls superclass method
# File lib/dustcart/output/amazon_s3.rb, line 23
        def precheck
          super

          raise <<-EOS.unindent unless mode == :all
            mode (#{mode}) unknown.
            :all is the only available mode now.
          EOS

          [:access_key_id, :secret_access_key, :region, :bucket].each do |key|
            raise <<-EOS.unindent unless attributes.key?(key)
              #{key} is required.
            EOS
          end
        end
run() click to toggle source
Calls superclass method
# File lib/dustcart/output/amazon_s3.rb, line 38
def run
  super

  generate_zip_file
  upload_zip_file
end

Private Instance Methods

generate_zip_file() click to toggle source
# File lib/dustcart/output/amazon_s3.rb, line 47
def generate_zip_file
  zf = ZipFileGenerator.new(from_dir, zip_file_name)
  zf.write
end
upload_zip_file() click to toggle source
# File lib/dustcart/output/amazon_s3.rb, line 52
def upload_zip_file
  resource = Aws::S3::Resource.new(
    access_key_id: access_key_id,
    secret_access_key: secret_access_key,
    region: region
  )

  obj_name = File.basename(zip_file_name)
  obj = resource.bucket(bucket).object(obj_name)
  obj.upload_file(zip_file_name)
end