diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d77227..2e3e989 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## CHANGE LOG +### v3.4.1 + +增加为上传文件进行预转的选项,参见 [uploadToken 之 asyncOps 说明](http://docs.qiniutek.com/v3/api/io/#uploadToken-asyncOps) + +- `Qiniu::RS.generate_upload_token()` 方法新增 `:async_options` 选项用于进行预转操作。 + ### v3.4.0 增加文件复制/移动方法,包括批量复制/移动文件 diff --git a/Gemfile.lock b/Gemfile.lock index f1b4455..22d68ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - qiniu-rs (3.4.0) + qiniu-rs (3.4.1) json (~> 1.7) mime-types (~> 1.19) rest-client (~> 1.6) diff --git a/docs/README.md b/docs/README.md index 7fa8af2..9f4d279 100644 --- a/docs/README.md +++ b/docs/README.md @@ -125,7 +125,8 @@ title: Ruby SDK 使用指南 | 七牛云存储 :callback_url => callback_url, :callback_body_type => callback_body_type, :customer => end_user_id, - :escape => allow_upload_callback_api + :escape => allow_upload_callback_api, + :async_options => async_callback_api_commands **参数** @@ -157,6 +158,9 @@ title: Ruby SDK 使用指南 | 七牛云存储 `foo=bar&w=$(imageInfo.width)&h=$(imageInfo.height)&exif=$(exif)` +:async_options +: 可选,字符串类型(String),用于设置文件上传成功后,执行指定的预转指令。参见 [uploadToken 之 asyncOps 说明](http://docs.qiniutek.com/v3/api/io/#uploadToken-asyncOps) + **返回值** 返回一个字符串类型(String)的用于上传文件用的临时授权 `upload_token`。 diff --git a/lib/qiniu/rs.rb b/lib/qiniu/rs.rb index dd744fa..58909b8 100755 --- a/lib/qiniu/rs.rb +++ b/lib/qiniu/rs.rb @@ -252,6 +252,7 @@ module Qiniu #token_obj.callback_body_type = opts[:callback_body_type] #token_obj.customer = opts[:customer] #token_obj.escape = opts[:escape] + #token_obj.async_options = opts[:async_options] token_obj.generate_token end diff --git a/lib/qiniu/rs/version.rb b/lib/qiniu/rs/version.rb index af38870..8bb67c4 100755 --- a/lib/qiniu/rs/version.rb +++ b/lib/qiniu/rs/version.rb @@ -5,7 +5,7 @@ module Qiniu module Version MAJOR = 3 MINOR = 4 - PATCH = 0 + PATCH = 1 # Returns a version string by joining MAJOR, MINOR, and PATCH with '.' # # Example diff --git a/lib/qiniu/tokens/upload_token.rb b/lib/qiniu/tokens/upload_token.rb index 24ea913..67ecebf 100755 --- a/lib/qiniu/tokens/upload_token.rb +++ b/lib/qiniu/tokens/upload_token.rb @@ -10,7 +10,7 @@ module Qiniu include Utils - attr_accessor :scope, :expires_in, :callback_url, :callback_body_type, :customer, :escape + attr_accessor :scope, :expires_in, :callback_url, :callback_body_type, :customer, :escape, :async_options def initialize(opts = {}) @scope = opts[:scope] @@ -19,6 +19,7 @@ module Qiniu @callback_body_type = opts[:callback_body_type] @customer = opts[:customer] @escape = opts[:escape] + @async_options = opts[:async_options] end def generate_signature @@ -27,6 +28,7 @@ module Qiniu params[:callbackBodyType] = @callback_body_type if !@callback_body_type.nil? && !@callback_body_type.empty? params[:customer] = @customer if !@customer.nil? && !@customer.empty? params[:escape] = 1 if @escape == 1 || @escape == true + params[:asyncOps] = @async_options if !@async_options.nil? && !@async_options.empty? Utils.urlsafe_base64_encode(params.to_json) end diff --git a/spec/qiniu/rs/image_spec.rb b/spec/qiniu/rs/image_spec.rb index 1da498c..860b6c0 100755 --- a/spec/qiniu/rs/image_spec.rb +++ b/spec/qiniu/rs/image_spec.rb @@ -20,7 +20,12 @@ module Qiniu local_file = File.expand_path('../' + @key, __FILE__) - upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"} + upopts = { + :scope => @bucket, + :expires_in => 3600, + :customer => "why404@gmail.com", + :async_options => "imageView/1/w/120/h/120" + } uptoken = Qiniu::RS.generate_upload_token(upopts) data = Qiniu::RS.upload_file :uptoken => uptoken, :file => local_file, :bucket => @bucket, :key => @key puts data.inspect