Class: EY::Backup::Backend
- Inherits:
-
Object
- Object
- EY::Backup::Backend
- Extended by:
- Logging
- Includes:
- Logging
- Defined in:
- lib/ey_backup/backend.rb
Instance Attribute Summary collapse
-
#bucket_minder ⇒ Object
readonly
Returns the value of attribute bucket_minder.
Instance Method Summary collapse
-
#initialize(secret_id, secret_key, region, bucket_name) ⇒ Backend
constructor
A new instance of Backend.
- #start_upload(filenames, environment_name, database_name) ⇒ Object
Constructor Details
#initialize(secret_id, secret_key, region, bucket_name) ⇒ Backend
Returns a new instance of Backend.
9 10 11 12 |
# File 'lib/ey_backup/backend.rb', line 9 def initialize(secret_id, secret_key, region, bucket_name) @bucket_minder = EY::BucketMinder.new(secret_id, secret_key, bucket_name, region) @s3 = Fog::Storage.new(:provider => 'AWS', :aws_access_key_id => secret_id, :aws_secret_access_key => secret_key, :region => region) end |
Instance Attribute Details
#bucket_minder ⇒ Object (readonly)
Returns the value of attribute bucket_minder.
13 14 15 |
# File 'lib/ey_backup/backend.rb', line 13 def bucket_minder @bucket_minder end |
Instance Method Details
#start_upload(filenames, environment_name, database_name) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ey_backup/backend.rb', line 15 def start_upload(filenames, environment_name, database_name) filenames.each do |filename| begin object_name = "#{environment_name}.#{database_name}/#{File.basename(filename)}" info "Starting upload: #{filename}" @s3.put_object(@bucket_minder.bucket_name, object_name, File.open(filename,'r')) info "Successful upload: #{filename}" rescue => e retries ||= 5 retries -= 1 raise e if retries == 0 warn "retrying upload of #{filename}. Got: #{e.inspect}" retry end end end |