Class: Backup::S3Storage
- Inherits:
-
AbstractStorage
- Object
- AbstractStorage
- Backup::S3Storage
- Defined in:
- lib/backup-agent/s3_storage.rb
Instance Attribute Summary
Attributes inherited from AbstractStorage
Instance Method Summary collapse
- #bucket ⇒ Object
- #delete(key) ⇒ Object
- #each ⇒ Object
-
#initialize ⇒ S3Storage
constructor
A new instance of S3Storage.
- #object(key) ⇒ Object
- #open ⇒ Object
- #s3 ⇒ Object
- #upload(key, path) ⇒ Object
Methods inherited from AbstractStorage
Constructor Details
#initialize ⇒ S3Storage
Returns a new instance of S3Storage.
4 5 6 7 |
# File 'lib/backup-agent/s3_storage.rb', line 4 def initialize(*) super @bucket_name = env.fetch(:bucket) end |
Instance Method Details
#bucket ⇒ Object
19 20 21 |
# File 'lib/backup-agent/s3_storage.rb', line 19 def bucket s3.bucket(@bucket_name) end |
#delete(key) ⇒ Object
31 32 33 |
# File 'lib/backup-agent/s3_storage.rb', line 31 def delete(key) bucket.object(key).delete end |
#each ⇒ Object
39 40 41 42 43 |
# File 'lib/backup-agent/s3_storage.rb', line 39 def each bucket.objects.each do |s3_obj| yield S3Object.new(self, s3_obj.key, object: s3_obj, bucket: bucket) end end |
#object(key) ⇒ Object
35 36 37 |
# File 'lib/backup-agent/s3_storage.rb', line 35 def object(key) S3Object.new(self, key, object: bucket.object(key), bucket: bucket) end |
#open ⇒ Object
23 24 25 |
# File 'lib/backup-agent/s3_storage.rb', line 23 def open s3 end |
#s3 ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/backup-agent/s3_storage.rb', line 9 def s3 @s3 ||= begin Aws.config.update( region: config.region, credentials: Aws::Credentials.new(config.access_key_id, config.secret_access_key) ) Aws::S3::Resource.new end end |
#upload(key, path) ⇒ Object
27 28 29 |
# File 'lib/backup-agent/s3_storage.rb', line 27 def upload(key, path) bucket.object(key).upload_file(path) end |