class Backup::Storage::Aliyun
Attributes
access_key_id[RW]
access_key_secret[RW]
aliyun_internal[RW]
area[RW]
bucket[RW]
path[RW]
Public Class Methods
new(model, storage_id = nil, &block)
click to toggle source
Calls superclass method
# File lib/backup/storage/aliyun.rb, line 11 def initialize(model, storage_id = nil, &block) super(model, storage_id) @path ||= 'backups' instance_eval(&block) if block_given? end
Private Instance Methods
connection()
click to toggle source
# File lib/backup/storage/aliyun.rb, line 21 def connection return @connection if @connection CarrierWave.configure do |config| config.storage = :aliyun config.aliyun_access_id = self.access_key_id config.aliyun_access_key = self.access_key_secret config.aliyun_bucket = self.bucket config.aliyun_area = self.area || "cn-hangzhou" config.aliyun_internal = self.aliyun_internal || false end @uploader = CarrierWave::Uploader::Base.new @connection = CarrierWave::Storage::Aliyun::Connection.new(@uploader) end
remove!(package)
click to toggle source
# File lib/backup/storage/aliyun.rb, line 48 def remove!(package) remote_path = remote_path_for(package) @package.filenames.each do |filename| dest = File.join(remote_path, filename) Logger.info "#{storage_name} removing '#{ dest }'..." connection.delete(dest) end Logger.info "#{storage_name} removing '#{remote_path}'..." connection.delete(remote_path) end
transfer!()
click to toggle source
# File lib/backup/storage/aliyun.rb, line 37 def transfer! remote_path = remote_path_for(@package) @package.filenames.each do |filename| src = File.join(Config.tmp_path, filename) dest = File.join(remote_path, filename) Logger.info "#{storage_name} uploading '#{ dest }'..." connection.put(dest, File.open(src)) end end