Class: S3ckup::S3Mananger
- Inherits:
-
Object
- Object
- S3ckup::S3Mananger
- Defined in:
- lib/s3ckup/s3_manager.rb
Constant Summary collapse
- MANIFEST_FILE_NAME =
'manifest.yml'
Instance Method Summary collapse
- #delete(bucket, manifest) ⇒ Object
- #fetch_manifest(bucket) ⇒ Object
-
#initialize(key_id, access_key, logger = Logger.new) ⇒ S3Mananger
constructor
A new instance of S3Mananger.
- #update_manifest(bucket, manifest) ⇒ Object
- #upload(bucket, manifest) ⇒ Object
Constructor Details
#initialize(key_id, access_key, logger = Logger.new) ⇒ S3Mananger
Returns a new instance of S3Mananger.
7 8 9 10 |
# File 'lib/s3ckup/s3_manager.rb', line 7 def initialize(key_id, access_key, logger = Logger.new) connect!(key_id, access_key) @logger = logger end |
Instance Method Details
#delete(bucket, manifest) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/s3ckup/s3_manager.rb', line 32 def delete(bucket, manifest) manifest.file_list.each do |file_name| @logger.info("Deleting remote file: #{file_name}") AWS::S3::S3Object.delete file_name, bucket end end |
#fetch_manifest(bucket) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/s3ckup/s3_manager.rb', line 12 def fetch_manifest(bucket) manifest = AWS::S3::S3Object.find MANIFEST_FILE_NAME, bucket Manifest.new(YAML.load(manifest.value)) rescue @logger.warn("Failed to fetch remote manifest. Ignoring.") Manifest.new({}) end |
#update_manifest(bucket, manifest) ⇒ Object
27 28 29 30 |
# File 'lib/s3ckup/s3_manager.rb', line 27 def update_manifest(bucket, manifest) @logger.info("Updating remote manifest") AWS::S3::S3Object.store(MANIFEST_FILE_NAME, manifest.to_yaml, bucket) end |
#upload(bucket, manifest) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/s3ckup/s3_manager.rb', line 20 def upload(bucket, manifest) manifest.file_list.each do |file_name| @logger.info("Uploading file: #{file_name}") AWS::S3::S3Object.store(file_name, open(file_name), bucket) end end |