Class: Outback::S3Target
Instance Attribute Summary
Attributes inherited from Target
#backup_name
Instance Method Summary
collapse
Methods inherited from Target
#initialize, #purge!
Methods included from Logging
#logger
#attr_setter, included
Instance Method Details
18
19
20
|
# File 'lib/outback/s3_target.rb', line 18
def bucket
service.buckets.find(bucket_name)
end
|
#put(archives) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/outback/s3_target.rb', line 22
def put(archives)
size = count = 0
archives.each do |archive|
object_name = [prefix.to_s, archive.filename.basename.to_s].join('/')
logger.debug "S3Target: storing #{archive.filename} in s3://#{bucket_name}/#{object_name}"
object = bucket.objects.build(object_name)
object.content = archive.open
object.acl = :private
object.save
if object.exists?
size += archive.size
count += 1
else
logger.error "S3 archive upload failed: #{object_name}"
end
end
logger.info "Uploaded #{count} archives (#{size} bytes) to #{self}"
count
end
|
#service(force_reconnect = false) ⇒ Object
13
14
15
16
|
# File 'lib/outback/s3_target.rb', line 13
def service(force_reconnect = false)
@service = nil if force_reconnect
@service ||= S3::Service.new(access_key_id: access_key, secret_access_key: secret_key, use_ssl: true)
end
|
5
6
7
|
# File 'lib/outback/s3_target.rb', line 5
def to_s
"s3:#{bucket_name}/#{prefix}"
end
|
#valid? ⇒ Boolean
9
10
11
|
# File 'lib/outback/s3_target.rb', line 9
def valid?
bucket_name && access_key && secret_key
end
|