Class: McDuck::S3Mananger
- Inherits:
-
Object
- Object
- McDuck::S3Mananger
- Defined in:
- lib/mc_duck/s3_manager.rb
Instance Method Summary collapse
- #backups_list(bucket_name, file_name) ⇒ Object
- #cleanup(bucket_name, file_name, backups_to_keep = 10) ⇒ Object
-
#initialize(key_id, access_key, logger = Logger.new) ⇒ S3Mananger
constructor
A new instance of S3Mananger.
- #upload(bucket, file_name, file_content) ⇒ Object
Constructor Details
#initialize(key_id, access_key, logger = Logger.new) ⇒ S3Mananger
Returns a new instance of S3Mananger.
6 7 8 9 |
# File 'lib/mc_duck/s3_manager.rb', line 6 def initialize(key_id, access_key, logger = Logger.new) connect!(key_id, access_key) @logger = logger end |
Instance Method Details
#backups_list(bucket_name, file_name) ⇒ Object
17 18 19 20 21 |
# File 'lib/mc_duck/s3_manager.rb', line 17 def backups_list(bucket_name, file_name) bucket = AWS::S3::Bucket.find(bucket_name) backups = bucket.map(&:key).sort backups.select { |file| file.include?(file_name) } end |
#cleanup(bucket_name, file_name, backups_to_keep = 10) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/mc_duck/s3_manager.rb', line 23 def cleanup(bucket_name, file_name, backups_to_keep = 10) expired_backups = backups_to_delete(bucket_name, file_name, backups_to_keep) expired_backups.each do |backup| @logger.info("Deleting old backup: #{backup}...") AWS::S3::S3Object.delete backup, bucket_name end end |
#upload(bucket, file_name, file_content) ⇒ Object
11 12 13 14 15 |
# File 'lib/mc_duck/s3_manager.rb', line 11 def upload(bucket, file_name, file_content) target_name = create_target_name(file_name) @logger.info("Uploading file: #{target_name}...") AWS::S3::S3Object.store(target_name, file_content, bucket) end |