class CarrierWave::Qiniu::Connection
Constants
- StatusOK
- UserAgent
Public Class Methods
new(options = {})
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 10 def initialize(options = {}) @qiniu_bucket_domain = options[:qiniu_bucket_domain] @qiniu_bucket = options[:qiniu_bucket] @qiniu_bucket_private = options[:qiniu_bucket_private] || false @qiniu_access_key = options[:qiniu_access_key] @qiniu_secret_key = options[:qiniu_secret_key] @qiniu_block_size = options[:qiniu_block_size] || 1024 * 1024 * 4 @qiniu_protocol = options[:qiniu_protocol] || "http" @qiniu_persistent_ops = options[:qiniu_persistent_ops] || options[:qiniu_async_ops] || "" @qiniu_persistent_pipeline = options[:qiniu_persistent_pipeline] || "" @qiniu_persistent_notify_url = options[:qiniu_persistent_notify_url] || "" @qiniu_can_overwrite = options[:qiniu_can_overwrite] || false @qiniu_expires_in = options[:qiniu_expires_in] || options[:expires_in] || 3600 @qiniu_up_host = options[:qiniu_up_host] @qiniu_private_url_expires_in = options[:qiniu_private_url_expires_in] || 3600 @qiniu_callback_url = options[:qiniu_callback_url] || "" @qiniu_callback_body = options[:qiniu_callback_body] || "" @qiniu_style_separator = options[:qiniu_style_separator] || "-" @qiniu_delete_after_days = options[:qiniu_delete_after_days] || 0 init end
Public Instance Methods
copy(origin, target)
click to toggle source
复制 @param origin [String] @param target [String] @return [Boolean]
# File lib/carrierwave/qiniu/connection.rb, line 63 def copy(origin, target) success = ::Qiniu.copy( @qiniu_bucket, origin, @qiniu_bucket, target ) success end
delete(key)
click to toggle source
删除 @param key [String] @return [Boolean]
# File lib/carrierwave/qiniu/connection.rb, line 94 def delete(key) success = ::Qiniu.delete( @qiniu_bucket, key ) success end
download_url(path)
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 120 def download_url(path) encode_path = path_escape(path) primitive_url = "#{@qiniu_protocol}://#{@qiniu_bucket_domain}/#{encode_path}" @qiniu_bucket_private ? ::Qiniu::Auth.authorize_download_url(primitive_url, :expires_in => @qiniu_private_url_expires_in) : primitive_url end
get(path)
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 115 def get(path) code, result, _ = ::Qiniu::HTTP.get(download_url(path)) code == 200 ? result : nil end
move(origin, target)
click to toggle source
移动 @param origin [String] @param target [String] @return [Boolean]
# File lib/carrierwave/qiniu/connection.rb, line 79 def move(origin, target) success = ::Qiniu.move( @qiniu_bucket, origin, # 源资源名 @qiniu_bucket, target # 目标资源名 ) success end
stat(key)
click to toggle source
获取文件信息 @param key [String] @return [Hash]
# File lib/carrierwave/qiniu/connection.rb, line 107 def stat(key) info = ::Qiniu.stat( @qiniu_bucket, # 存储空间 key # 资源名 ) info end
upload_file(file_path, key)
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 32 def upload_file(file_path, key) overwrite_file = nil overwrite_file = key if @qiniu_can_overwrite put_policy = ::Qiniu::Auth::PutPolicy.new( @qiniu_bucket, overwrite_file, @qiniu_expires_in, nil ) put_policy.callback_url = @qiniu_callback_url if @qiniu_callback_url.present? put_policy.callback_body = @qiniu_callback_body if @qiniu_callback_body.present? put_policy.persistent_ops = @qiniu_persistent_ops put_policy.persistent_notify_url = @qiniu_persistent_notify_url if @qiniu_persistent_notify_url.present? put_policy.persistent_pipeline = @qiniu_persistent_pipeline resp_code, resp_body, resp_headers = ::Qiniu::Storage.upload_with_put_policy(put_policy, file_path, key, nil, bucket: @qiniu_bucket) raise ::Qiniu::UploadFailedError.new(resp_code, resp_body) if resp_code != StatusOK resp_body end
Private Instance Methods
establish_connection!()
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 135 def establish_connection! options = { :access_key => @qiniu_access_key, :secret_key => @qiniu_secret_key, :user_agent => UserAgent, } options[:block_size] = @qiniu_block_size if @qiniu_block_size options[:up_host] = @qiniu_up_host if @qiniu_up_host ::Qiniu.establish_connection! options end
init()
click to toggle source
# File lib/carrierwave/qiniu/connection.rb, line 128 def init establish_connection! unless @@connection_established @@connection_established = true end
path_escape(value)
click to toggle source
fix chinese file name, same as encodeURIComponent in js but preserve slash '/'
# File lib/carrierwave/qiniu/connection.rb, line 147 def path_escape(value) ::URI::DEFAULT_PARSER.escape value end