class Backup::Storage::Qiniu
Attributes
access_key[RW]
access_key_secret[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/qiniu.rb, line 10 def initialize(model, storage_id = nil, &block) super(model, storage_id) @bucket ||= 'backups' @path ||= '' instance_eval(&block) if block_given? end
Public Instance Methods
establish_connection!()
click to toggle source
# File lib/backup/storage/qiniu.rb, line 49 def establish_connection! raise 'access_key is missing' if access_key.nil? raise 'access_key_secret is missing' if access_key_secret.nil? ::Qiniu.establish_connection! :access_key => access_key, :secret_key => access_key_secret end
remove!(package)
click to toggle source
# File lib/backup/storage/qiniu.rb, line 38 def remove!(package) remote_path = remote_path_for(package) establish_connection! package.filenames.each do |filename| dest = File.join(remote_path, filename) raise "#{storage_name} delete #{remote_path} failed" unless ::Qiniu.delete(bucket, dest) end end
transfer!()
click to toggle source
# File lib/backup/storage/qiniu.rb, line 19 def transfer! remote_path = remote_path_for(package) establish_connection! package.filenames.each do |filename| src = File.join(Config.tmp_path, filename) dest = File.join(remote_path, filename) Logger.info "#{storage_name} uploading '#{ dest }'..." upload_token = ::Qiniu.generate_upload_token :scope => bucket result = ::Qiniu.upload_file :uptoken => upload_token, :file => src, :bucket => bucket, :key => dest raise "#{storage_name} upload #{dest} failed" unless result end end