qiniu-rs 3.4.2 → 3.4.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +2 -3
- data/docs/README.md +24 -22
- data/lib/qiniu/rs/version.rb +1 -1
- data/lib/qiniu/tokens/upload_token.rb +5 -1
- data/qiniu-rs.gemspec +1 -1
- data/spec/qiniu/rs/rs_spec.rb +12 -12
- data/spec/qiniu/rs_spec.rb +10 -10
- metadata +3 -9
data/.travis.yml
CHANGED
@@ -7,9 +7,8 @@ rvm:
|
|
7
7
|
- jruby-19mode
|
8
8
|
- rbx-18mode
|
9
9
|
- rbx-19mode
|
10
|
-
- ruby-head
|
11
10
|
- jruby-head
|
12
11
|
- ree
|
13
12
|
before_script:
|
14
|
-
- export QINIU_ACCESS_KEY=
|
15
|
-
- export QINIU_SECRET_KEY=
|
13
|
+
- export QINIU_ACCESS_KEY=LGRqJsjX7LAvtdtX6hhyxs861lS57HwnOQmJsOuX
|
14
|
+
- export QINIU_SECRET_KEY=g_OxhuN5iJ1O7BoA6YdXyF6zSszk34UZFKDfdIIW
|
data/docs/README.md
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
---
|
2
|
-
title: Ruby SDK
|
2
|
+
title: Ruby SDK
|
3
3
|
---
|
4
4
|
|
5
|
-
|
5
|
+
此 Ruby SDK 适用于 Ruby 1.8.x, 1.9.x, jruby, rbx, ree 版本,基于 [七牛云存储官方API](http://docs.qiniu.com/) 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构的服务或应用,通过七牛云存储及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
七牛云存储 Ruby SDK 源码地址:<https://github.com/qiniu/ruby-sdk> [![Build Status](https://api.travis-ci.org/qiniu/ruby-sdk.png?branch=master)](https://travis-ci.org/qiniu/ruby-sdk) [![Dependency Status](https://gemnasium.com/why404/qiniu-rs-for-ruby.png)](https://gemnasium.com/why404/qiniu-rs-for-ruby)
|
7
|
+
七牛云存储 Ruby SDK 源码地址:<https://github.com/qiniu/ruby-sdk>
|
10
8
|
|
11
9
|
**目录**
|
12
10
|
|
@@ -76,8 +74,8 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
76
74
|
|
77
75
|
要接入七牛云存储,您需要拥有一对有效的 Access Key 和 Secret Key 用来进行签名认证。可以通过如下步骤获得:
|
78
76
|
|
79
|
-
1. [开通七牛开发者帐号](https://
|
80
|
-
2. [登录七牛开发者自助平台,查看 Access Key 和 Secret Key](https://
|
77
|
+
1. [开通七牛开发者帐号](https://portal.qiniu.com/signup)
|
78
|
+
2. [登录七牛开发者自助平台,查看 Access Key 和 Secret Key](https://portal.qiniu.com/setting/key)
|
81
79
|
|
82
80
|
在获取到 Access Key 和 Secret Key 之后,您可以在您的程序中调用如下两行代码进行初始化对接:
|
83
81
|
|
@@ -110,7 +108,7 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
110
108
|
|
111
109
|
### 文件上传
|
112
110
|
|
113
|
-
**注意**:如果您只是想要上传已存在您电脑本地或者是服务器上的文件到七牛云存储,可以直接使用七牛提供的 [qrsync](/
|
111
|
+
**注意**:如果您只是想要上传已存在您电脑本地或者是服务器上的文件到七牛云存储,可以直接使用七牛提供的 [qrsync](http://docs.qiniu.com/tools/qrsync.html) 上传工具。如果是需要通过您的网站或是移动应用(App)上传文件,则可以接入使用此 SDK,详情参考如下文档说明。
|
114
112
|
|
115
113
|
<a name="generate-upload-token"></a>
|
116
114
|
|
@@ -123,6 +121,7 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
123
121
|
Qiniu::RS.generate_upload_token :scope => target_bucket,
|
124
122
|
:expires_in => expires_in_seconds,
|
125
123
|
:callback_url => callback_url,
|
124
|
+
:callback_body => callback_body,
|
126
125
|
:callback_body_type => callback_body_type,
|
127
126
|
:customer => end_user_id,
|
128
127
|
:escape => allow_upload_callback_api,
|
@@ -140,6 +139,9 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
140
139
|
:callback_url
|
141
140
|
: 可选,字符串类型(String),用于设置文件上传成功后,七牛云存储服务端要回调客户方的业务服务器地址。
|
142
141
|
|
142
|
+
:callback_body
|
143
|
+
: 可选,字符串类型(String),用于设置文件上传成功后,七牛云存储服务端向客户方的业务服务器发送回调请求的值。
|
144
|
+
|
143
145
|
:callback_body_type
|
144
146
|
: 可选,字符串类型(String),用于设置文件上传成功后,七牛云存储服务端向客户方的业务服务器发送回调请求的 `Content-Type`。
|
145
147
|
|
@@ -147,15 +149,15 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
147
149
|
: 可选,字符串类型(String),客户方终端用户(End User)的ID,该字段可以用来标示一个文件的属主,这在一些特殊场景下(比如给终端用户上传的图片打上名字水印)非常有用。
|
148
150
|
|
149
151
|
:escape
|
150
|
-
: 可选,数字类型,可选值 0 或者 1,缺省为 0 。值为 1 表示 callback 传递的自定义数据中允许存在转义符号 `$(VarExpression)`,参考 [VarExpression](/v3/api/words/#VarExpression)。
|
152
|
+
: 可选,数字类型,可选值 0 或者 1,缺省为 0 。值为 1 表示 callback 传递的自定义数据中允许存在转义符号 `$(VarExpression)`,参考 [VarExpression](http://docs.qiniutek.com/v3/api/words/#VarExpression)。
|
151
153
|
|
152
154
|
当 `escape` 的值为 `1` 时,常见的转义语法如下:
|
153
155
|
|
154
|
-
- 若 `callbackBodyType` 为 `application/json` 时,一个典型的自定义回调数据([CallbackParams](/v3/api/io/#CallbackParams))为:
|
156
|
+
- 若 `callbackBodyType` 为 `application/json` 时,一个典型的自定义回调数据([CallbackParams](http://docs.qiniutek.com/v3/api/io/#CallbackParams))为:
|
155
157
|
|
156
158
|
`{foo: "bar", w: $(imageInfo.width), h: $(imageInfo.height), exif: $(exif)}`
|
157
159
|
|
158
|
-
- 若 `callbackBodyType` 为 `application/x-www-form-urlencoded` 时,一个典型的自定义回调数据([CallbackParams](/v3/api/io/#CallbackParams))为:
|
160
|
+
- 若 `callbackBodyType` 为 `application/x-www-form-urlencoded` 时,一个典型的自定义回调数据([CallbackParams](http://docs.qiniutek.com/v3/api/io/#CallbackParams))为:
|
159
161
|
|
160
162
|
`foo=bar&w=$(imageInfo.width)&h=$(imageInfo.height)&exif=$(exif)`
|
161
163
|
|
@@ -163,7 +165,7 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
163
165
|
: 可选,字符串类型(String),用于设置文件上传成功后,执行指定的预转指令。参考 [uploadToken 之 asyncOps 说明](http://docs.qiniutek.com/v3/api/io/#uploadToken-asyncOps)
|
164
166
|
|
165
167
|
:return_body
|
166
|
-
: 可选,字符串类型(String),用于设置文件上传成功后,执行七牛云存储规定的回调API,并以 JSON 响应格式返回其执行结果。参考 [uploadToken 之 returnBody 说明](/v3/api/io/#uploadToken-returnBody)。
|
168
|
+
: 可选,字符串类型(String),用于设置文件上传成功后,执行七牛云存储规定的回调API,并以 JSON 响应格式返回其执行结果。参考 [uploadToken 之 returnBody 说明](http://docs.qiniutek.com/v3/api/io/#uploadToken-returnBody)。
|
167
169
|
|
168
170
|
|
169
171
|
**返回值**
|
@@ -227,7 +229,7 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
227
229
|
|
228
230
|
##### 开启断点续上传
|
229
231
|
|
230
|
-
无需任何额外改动,SDK 提供的 `Qiniu::RS.upload_file()` 方法缺省支持断点续上传。默认情况下,SDK 会自动启用断点续上传的方式来上传超过 4MB 大小的文件。您也可以在 [应用接入](/v3/sdk/ruby/#establish_connection!) 时通过修改缺省配置来设置该阀值:
|
232
|
+
无需任何额外改动,SDK 提供的 `Qiniu::RS.upload_file()` 方法缺省支持断点续上传。默认情况下,SDK 会自动启用断点续上传的方式来上传超过 4MB 大小的文件。您也可以在 [应用接入](http://docs.qiniutek.com/v3/sdk/ruby/#establish_connection!) 时通过修改缺省配置来设置该阀值:
|
231
233
|
|
232
234
|
Qiniu::RS.establish_connection! :access_key => YOUR_APP_ACCESS_KEY,
|
233
235
|
:secret_key => YOUR_APP_SECRET_KEY,
|
@@ -270,9 +272,9 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
270
272
|
简单来讲,客户端上传流程分为两步:
|
271
273
|
|
272
274
|
1. [服务端生成上传授权凭证(uploadToken)](#generate-upload-token)
|
273
|
-
2. 客户端程序调用 [iOS](/
|
275
|
+
2. 客户端程序调用 [iOS](http://docs.qiniu.com/ios-sdk/index.html) / [Android](http://docs.qiniu.com/android-sdk/index.html) SDK 的文件上传方法进行上传
|
274
276
|
|
275
|
-
如果是网页直传文件到七牛云存储,网页可以使用 JavaScript 动态实现 [七牛云存储上传API](/v3/api/io/#upload-file-by-html-form)。
|
277
|
+
如果是网页直传文件到七牛云存储,网页可以使用 JavaScript 动态实现 [七牛云存储上传API](http://docs.qiniutek.com/v3/api/io/#upload-file-by-html-form)。
|
276
278
|
|
277
279
|
通过客户端直传文件,您的终端用户即可把数据(比如图片或视频)直接上传到七牛云存储服务器上,而无须经由您的服务端中转,终端用户上传数据始终是离他物理距离最近的七牛存储节点。当终端用户上传成功后,七牛云存储服务端会向您指定的 `callback_url` (一般在 [uploadToken](#generate-upload-token) 里边指定)发送回调数据(回调数据在客户端程序里边指定)。如果 `callback_url` 所指向的服务端处理完毕后输出 `JSON` 格式的数据,七牛云存储服务端会将该回调请求所得的 JSON 响应信息原封不动地返回给客户端应用程序。
|
278
280
|
|
@@ -297,9 +299,9 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
297
299
|
|
298
300
|
[GET] http://<绑定域名>/<key>
|
299
301
|
|
300
|
-
绑定域名可以是自定义域名,可以在 [七牛云存储开发者自助网站](https://
|
302
|
+
绑定域名可以是自定义域名,可以在 [七牛云存储开发者自助网站](https://portal.qiniu.com/) 进行域名绑定操作。
|
301
303
|
|
302
|
-
|
304
|
+
**注意**,尖括号不是必需,代表替换项。
|
303
305
|
|
304
306
|
<a name="download-private-files"></a>
|
305
307
|
|
@@ -328,7 +330,7 @@ expires_in
|
|
328
330
|
: 可选,数字类型,用于设置上传 URL 的有效期,单位:秒,缺省为 3600 秒,即 1 小时后该下载授权凭证(downloadToken)不再有效。
|
329
331
|
|
330
332
|
pattern
|
331
|
-
:
|
333
|
+
: 可选,字符串类型,用于设置可匹配的下载链接。参考:[downloadToken pattern 详解](http://docs.qiniutek.com/v3/api/io/#download-token-pattern)
|
332
334
|
|
333
335
|
|
334
336
|
<a name="other-download-features"></a>
|
@@ -339,7 +341,7 @@ pattern
|
|
339
341
|
|
340
342
|
##### 断点续下载
|
341
343
|
|
342
|
-
七牛云存储支持标准的断点续下载,参考:[云存储API之断点续下载](/
|
344
|
+
七牛云存储支持标准的断点续下载,参考:[云存储API之断点续下载](http://docs.qiniu.com/api/get.html#download-by-range-bytes)
|
343
345
|
|
344
346
|
<a name="upload-file-for-not-found"></a>
|
345
347
|
|
@@ -347,7 +349,7 @@ pattern
|
|
347
349
|
|
348
350
|
您可以上传一个应对 HTTP 404 出错处理的文件,当用户访问一个不存在的文件时,即可使用您上传的“自定义404文件”代替之。要这么做,您只须使用 `Qiniu::RS.upload_file` 函数上传一个 `key` 为固定字符串类型的值 `errno-404` 即可。
|
349
351
|
|
350
|
-
除了使用 SDK 提供的方法,同样也可以借助七牛云存储提供的命令行辅助工具 [qboxrsctl](/
|
352
|
+
除了使用 SDK 提供的方法,同样也可以借助七牛云存储提供的命令行辅助工具 [qboxrsctl](http://docs.qiniu.com/tools/qboxrsctl.html) 达到同样的目的:
|
351
353
|
|
352
354
|
qboxrsctl put <Bucket> <Key> <LocalFile>
|
353
355
|
|
@@ -687,7 +689,7 @@ mogrify_options
|
|
687
689
|
:auto_orient => <TrueOrFalse>
|
688
690
|
}
|
689
691
|
|
690
|
-
`Qiniu::RS.image_mogrify_preview_url()` 方法是对七牛云存储图像处理高级接口的完整包装,关于 `mogrify_options` 参数里边的具体含义和使用方式,可以参考文档:[图像处理高级接口](/
|
692
|
+
`Qiniu::RS.image_mogrify_preview_url()` 方法是对七牛云存储图像处理高级接口的完整包装,关于 `mogrify_options` 参数里边的具体含义和使用方式,可以参考文档:[图像处理高级接口](http://docs.qiniu.com/api/image-process.html#imageMogr)。
|
691
693
|
|
692
694
|
**返回值**
|
693
695
|
|
@@ -727,7 +729,7 @@ mogrify_options
|
|
727
729
|
:auto_orient => <TrueOrFalse>
|
728
730
|
}
|
729
731
|
|
730
|
-
`Qiniu::RS::Image.mogrify_preview_url()` 方法是对七牛云存储图像处理高级接口的完整包装,关于 `mogrify_options` 参数里边的具体含义和使用方式,可以参考文档:[图像处理高级接口](/
|
732
|
+
`Qiniu::RS::Image.mogrify_preview_url()` 方法是对七牛云存储图像处理高级接口的完整包装,关于 `mogrify_options` 参数里边的具体含义和使用方式,可以参考文档:[图像处理高级接口](http://docs.qiniu.com/api/image-process.html#imageMogr)
|
731
733
|
|
732
734
|
**返回值**
|
733
735
|
|
data/lib/qiniu/rs/version.rb
CHANGED
@@ -10,27 +10,31 @@ module Qiniu
|
|
10
10
|
|
11
11
|
include Utils
|
12
12
|
|
13
|
-
attr_accessor :scope, :expires_in, :callback_url, :callback_body_type, :customer, :escape, :async_options, :return_body
|
13
|
+
attr_accessor :scope, :expires_in, :callback_url, :callback_body, :callback_body_type, :customer, :escape, :async_options, :return_body, :return_url
|
14
14
|
|
15
15
|
def initialize(opts = {})
|
16
16
|
@scope = opts[:scope]
|
17
17
|
@expires_in = opts[:expires_in] || 3600
|
18
18
|
@callback_url = opts[:callback_url]
|
19
|
+
@callback_body = opts[:callback_body]
|
19
20
|
@callback_body_type = opts[:callback_body_type]
|
20
21
|
@customer = opts[:customer]
|
21
22
|
@escape = opts[:escape]
|
22
23
|
@async_options = opts[:async_options]
|
23
24
|
@return_body = opts[:return_body]
|
25
|
+
@return_url = opts[:return_url]
|
24
26
|
end
|
25
27
|
|
26
28
|
def generate_signature
|
27
29
|
params = {:scope => @scope, :deadline => Time.now.to_i + @expires_in}
|
28
30
|
params[:callbackUrl] = @callback_url if !@callback_url.nil? && !@callback_url.empty?
|
31
|
+
params[:callbackBody] = @callback_body if !@callback_body.nil? && !@callback_body.empty?
|
29
32
|
params[:callbackBodyType] = @callback_body_type if !@callback_body_type.nil? && !@callback_body_type.empty?
|
30
33
|
params[:customer] = @customer if !@customer.nil? && !@customer.empty?
|
31
34
|
params[:escape] = 1 if @escape == 1 || @escape == true
|
32
35
|
params[:asyncOps] = @async_options if !@async_options.nil? && !@async_options.empty?
|
33
36
|
params[:returnBody] = @return_body if !@return_body.nil? && !@return_body.empty?
|
37
|
+
params[:returnUrl] = @return_url if !@return_url.nil? && !@return_url.empty?
|
34
38
|
Utils.urlsafe_base64_encode(params.to_json)
|
35
39
|
end
|
36
40
|
|
data/qiniu-rs.gemspec
CHANGED
@@ -5,7 +5,7 @@ require File.expand_path('../lib/qiniu/rs/version', __FILE__)
|
|
5
5
|
Gem::Specification.new do |gem|
|
6
6
|
gem.authors = ["why404"]
|
7
7
|
gem.email = ["why404@gmail.com"]
|
8
|
-
gem.description = %q{Qiniu Resource (Cloud) Storage SDK for Ruby. See: http://docs.
|
8
|
+
gem.description = %q{Qiniu Resource (Cloud) Storage SDK for Ruby. See: http://docs.qiniu.com/ruby-sdk/}
|
9
9
|
gem.summary = %q{Qiniu Resource (Cloud) Storage SDK for Ruby}
|
10
10
|
gem.homepage = "https://github.com/qiniu/ruby-sdk"
|
11
11
|
|
data/spec/qiniu/rs/rs_spec.rb
CHANGED
@@ -136,18 +136,6 @@ module Qiniu
|
|
136
136
|
end
|
137
137
|
=end
|
138
138
|
|
139
|
-
context ".copy" do
|
140
|
-
it "should works" do
|
141
|
-
code, data = Qiniu::RS::RS.copy(@bucket, @key, @bucket, @key2)
|
142
|
-
code.should == 200
|
143
|
-
puts data.inspect
|
144
|
-
|
145
|
-
#code2, data2 = Qiniu::RS::RS.stat(@bucket, @key2)
|
146
|
-
#code2.should == 200
|
147
|
-
#puts data2.inspect
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
139
|
context ".move" do
|
152
140
|
it "should works" do
|
153
141
|
code, data = Qiniu::RS::RS.move(@bucket, @key, @bucket, @key2)
|
@@ -164,6 +152,18 @@ module Qiniu
|
|
164
152
|
end
|
165
153
|
end
|
166
154
|
|
155
|
+
context ".copy" do
|
156
|
+
it "should works" do
|
157
|
+
code, data = Qiniu::RS::RS.copy(@bucket, @key, @bucket, @key2)
|
158
|
+
code.should == 200
|
159
|
+
puts data.inspect
|
160
|
+
|
161
|
+
#code2, data2 = Qiniu::RS::RS.stat(@bucket, @key2)
|
162
|
+
#code2.should == 200
|
163
|
+
#puts data2.inspect
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
167
|
context ".delete" do
|
168
168
|
it "should works" do
|
169
169
|
code, data = Qiniu::RS::RS.delete(@bucket, @key)
|
data/spec/qiniu/rs_spec.rb
CHANGED
@@ -319,16 +319,6 @@ module Qiniu
|
|
319
319
|
end
|
320
320
|
end
|
321
321
|
|
322
|
-
context ".copy" do
|
323
|
-
it "should works" do
|
324
|
-
result = Qiniu::RS.copy(@bucket, @key, @bucket, @key2)
|
325
|
-
result.should_not be_false
|
326
|
-
|
327
|
-
#result2 = Qiniu::RS.stat(@bucket, @key2)
|
328
|
-
#result2.should_not be_false
|
329
|
-
end
|
330
|
-
end
|
331
|
-
|
332
322
|
context ".move" do
|
333
323
|
it "should works" do
|
334
324
|
result = Qiniu::RS.move(@bucket, @key, @bucket, @key2)
|
@@ -342,6 +332,16 @@ module Qiniu
|
|
342
332
|
end
|
343
333
|
end
|
344
334
|
|
335
|
+
context ".copy" do
|
336
|
+
it "should works" do
|
337
|
+
result = Qiniu::RS.copy(@bucket, @key, @bucket, @key2)
|
338
|
+
result.should_not be_false
|
339
|
+
|
340
|
+
#result2 = Qiniu::RS.stat(@bucket, @key2)
|
341
|
+
#result2.should_not be_false
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
345
|
context ".delete" do
|
346
346
|
it "should works" do
|
347
347
|
result = Qiniu::RS.delete(@bucket, @key)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qiniu-rs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-07-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0.4'
|
126
|
-
description: ! 'Qiniu Resource (Cloud) Storage SDK for Ruby. See: http://docs.
|
126
|
+
description: ! 'Qiniu Resource (Cloud) Storage SDK for Ruby. See: http://docs.qiniu.com/ruby-sdk/'
|
127
127
|
email:
|
128
128
|
- why404@gmail.com
|
129
129
|
executables: []
|
@@ -186,18 +186,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
186
|
- - ! '>='
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0'
|
189
|
-
segments:
|
190
|
-
- 0
|
191
|
-
hash: -4169114018615426400
|
192
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
190
|
none: false
|
194
191
|
requirements:
|
195
192
|
- - ! '>='
|
196
193
|
- !ruby/object:Gem::Version
|
197
194
|
version: '0'
|
198
|
-
segments:
|
199
|
-
- 0
|
200
|
-
hash: -4169114018615426400
|
201
195
|
requirements: []
|
202
196
|
rubyforge_project:
|
203
197
|
rubygems_version: 1.8.25
|