Class: Backup::S3Storage

Inherits:
AbstractStorage show all
Defined in:
lib/backup-agent/s3_storage.rb

Instance Attribute Summary

Attributes inherited from AbstractStorage

#config, #env

Instance Method Summary collapse

Methods inherited from AbstractStorage

#close

Constructor Details

#initializeS3Storage

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

#bucketObject



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

#eachObject



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

#openObject



23
24
25
# File 'lib/backup-agent/s3_storage.rb', line 23

def open
  s3
end

#s3Object



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