class Backup::CloudIO::QiNiu
Attributes
access_key[R]
bucket[R]
expires_in[R]
secret_key[R]
uptoken[R]
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
Backup::CloudIO::Base::new
# File lib/backup/cloud_io/qi_niu.rb, line 33 def initialize(options = {}) super @access_key = options[:access_key] @secret_key = options[:secret_key] @bucket = options[:bucket] @expires_in = options[:expires_in] || 31536000 # 3600*24*365 establish_connection! end
Public Instance Methods
delete(objects)
click to toggle source
# File lib/backup/cloud_io/qi_niu.rb, line 59 def delete(objects) Logger.info "\s\sDeleting from Qiniu..." with_retries("DELETE objects") do objects.each do |object| wrap_results Qiniu::Storage.delete(bucket, object['key']), success_info: "\s\sDelete #{object['key']} success", fail_info: "Delete #{object['key']} from Qiniu failed!" end end end
objects(remote_path)
click to toggle source
# File lib/backup/cloud_io/qi_niu.rb, line 54 def objects(remote_path) _, result, _ = Qiniu::Storage.list(bucket, remote_path) result['items'] end
upload(src, dest)
click to toggle source
# File lib/backup/cloud_io/qi_niu.rb, line 44 def upload(src, dest) Logger.info "\s\sUploading #{src} to Qiniu..." put_policy = Qiniu::Auth::PutPolicy.new(bucket, nil, expires_in) with_retries("Upload with put policy") do wrap_results Qiniu::Storage.upload_with_put_policy(put_policy, src, dest), success_info: "\s\sUpload to Qiniu success", fail_info: 'Upload to Qiniu failed!' end end
Private Instance Methods
establish_connection!()
click to toggle source
# File lib/backup/cloud_io/qi_niu.rb, line 72 def establish_connection! Qiniu.establish_connection! access_key: access_key, secret_key: secret_key end
wrap_results(results, options = {})
click to toggle source
# File lib/backup/cloud_io/qi_niu.rb, line 76 def wrap_results(results, options = {}) code, result, response_headers = results if code == 200 Logger.info options[:success_info] Logger.info result else Logger.error Error.new(<<-EOS) #{Logger.info options[:fail_info]} code: #{code} result: #{result} headers: #{response_headers} EOS end end