class PoringBackup::Storages::S3

Attributes

bucket_object[R]
s3[R]

Public Class Methods

new(setting, &block) click to toggle source
Calls superclass method PoringBackup::Storage::new
# File lib/poring_backup/storages/s3.rb, line 7
def initialize setting, &block
  super
  instance_eval(&block) if block_given?
end

Public Instance Methods

access_key_id(key) click to toggle source
# File lib/poring_backup/storages/s3.rb, line 20
def access_key_id key
  @access_key_id = key
end
bucket(name) click to toggle source
# File lib/poring_backup/storages/s3.rb, line 28
def bucket name
  @bucket = name
end
notify_message() click to toggle source
# File lib/poring_backup/storages/s3.rb, line 55
def notify_message
  @notify_message ||= "bucket: #{@bucket}, path: #{@path}"
end
path(name) click to toggle source
# File lib/poring_backup/storages/s3.rb, line 36
def path name
  @path = name
end
region(name) click to toggle source
# File lib/poring_backup/storages/s3.rb, line 32
def region name
  @region = name
end
secret_access_key(key) click to toggle source
# File lib/poring_backup/storages/s3.rb, line 24
def secret_access_key key
  @secret_access_key = key
end
upload() click to toggle source
# File lib/poring_backup/storages/s3.rb, line 40
def upload
  PoringBackup.logger.info "S3 processing"
  setting.databases.each do |db|
    s3_path = "#{@path}/#{db.file_path}"
    object = bucket_object.object(s3_path)
    success = object.upload_file(db.tmp_file_path)
    if success
      PoringBackup.logger.info "#{' '*3}uploaded: #{s3_path}"
    else
      PoringBackup.logger.warn "#{' '*3}uploaded failure: #{db.tmp_file_path}"
    end
  end
  PoringBackup.logger.info "#{' '*3}finished"
end

Private Instance Methods

aws_client() click to toggle source
# File lib/poring_backup/storages/s3.rb, line 63
def aws_client
  @aws_client ||= Aws::S3::Client.new(
                    region: @region,
                    credentials: aws_credentials
                  )
end
aws_credentials() click to toggle source
# File lib/poring_backup/storages/s3.rb, line 70
def aws_credentials
  @aws_credentials ||= Aws::Credentials.new(@access_key_id, @secret_access_key)
end
aws_resource() click to toggle source
# File lib/poring_backup/storages/s3.rb, line 60
def aws_resource
  @aws_resource ||= Aws::S3::Resource.new(client: aws_client)
end