Sha256: d8bdf2d1d3388c6e0513df39c471e775a4bf7ca1b962d9d00be8ee9486063f45
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
module Outback class S3Target < Target attr_setter :bucket, :access_key, :secret_key, :ttl, :prefix def valid? bucket && access_key && secret_key end def connect(force = true) @connection = nil if force @connection ||= AWS::S3::Base.establish_connection!(:access_key_id => access_key, :secret_access_key => secret_key) end def put(archives) connect archives.each do |archive| object_name = [prefix.to_s, archive.filename.basename.to_s].join('/') Outback.debug "S3Target: storing #{archive.filename} in s3://#{bucket}/#{object_name}" AWS::S3::S3Object.store object_name, archive.open, bucket object_exists = AWS::S3::S3Object.exists?(object_name, bucket) Outback.debug "Checking if object exists: #{object_exists}" end Outback.debug "Uploaded #{archives.sum(&:size)} bytes to S3" end def list_archives(name) connect entries = AWS::S3::Bucket.objects(bucket).select { |e| e.key.start_with?(prefix.to_s) && e.key[prefix.to_s.size..-1].match(Archive::NAME_PATTERN) } entries.map { |e| S3Archive.new(e.key, self) }.select(&its.backup_name == name) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
outback-0.0.6 | lib/outback/s3_target.rb |