qiniu-rs 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiniu-rs (3.1.0)
4
+ qiniu-rs (3.2.0)
5
5
  json (~> 1.7)
6
6
  mime-types (~> 1.19)
7
7
  rest-client (~> 1.6)
data/docs/README.md CHANGED
@@ -120,7 +120,8 @@ title: Ruby SDK 使用指南 | 七牛云存储
120
120
  :expires_in => expires_in_seconds,
121
121
  :callback_url => callback_url,
122
122
  :callback_body_type => callback_body_type,
123
- :customer => end_user_id
123
+ :customer => end_user_id,
124
+ :escape => allow_upload_callback_api
124
125
 
125
126
  **参数**
126
127
 
@@ -139,6 +140,19 @@ title: Ruby SDK 使用指南 | 七牛云存储
139
140
  :customer
140
141
  : 可选,字符串类型(String),客户方终端用户(End User)的ID,该字段可以用来标示一个文件的属主,这在一些特殊场景下(比如给终端用户上传的图片打上名字水印)非常有用。
141
142
 
143
+ :escape
144
+ : 可选,数字类型,可选值 0 或者 1,缺省为 0 。值为 1 表示 callback 传递的自定义数据中允许存在转义符号 `$(VarExpression)`,参考 [VarExpression](/v3/api/words/#VarExpression)。
145
+
146
+ 当 `escape` 的值为 `1` 时,常见的转义语法如下:
147
+
148
+ - 若 `callbackBodyType` 为 `application/json` 时,一个典型的自定义回调数据([CallbackParams](/v3/api/io/#CallbackParams))为:
149
+
150
+ `{foo: "bar", w: $(imageInfo.width), h: $(imageInfo.height), exif: $(exif)}`
151
+
152
+ - 若 `callbackBodyType` 为 `application/x-www-form-urlencoded` 时,一个典型的自定义回调数据([CallbackParams](/v3/api/io/#CallbackParams))为:
153
+
154
+ `foo=bar&w=$(imageInfo.width)&h=$(imageInfo.height)&exif=$(exif)`
155
+
142
156
  **返回值**
143
157
 
144
158
  返回一个字符串类型(String)的用于上传文件用的临时授权 `upload_token`。
data/lib/qiniu/rs.rb CHANGED
@@ -224,6 +224,7 @@ module Qiniu
224
224
  #token_obj.callback_url = opts[:callback_url]
225
225
  #token_obj.callback_body_type = opts[:callback_body_type]
226
226
  #token_obj.customer = opts[:customer]
227
+ #token_obj.escape = opts[:escape]
227
228
  token_obj.generate_token
228
229
  end
229
230
 
@@ -4,7 +4,7 @@ module Qiniu
4
4
  module RS
5
5
  module Version
6
6
  MAJOR = 3
7
- MINOR = 1
7
+ MINOR = 2
8
8
  PATCH = 0
9
9
  # Returns a version string by joining <tt>MAJOR</tt>, <tt>MINOR</tt>, and <tt>PATCH</tt> with <tt>'.'</tt>
10
10
  #
@@ -10,7 +10,7 @@ module Qiniu
10
10
 
11
11
  include Utils
12
12
 
13
- attr_accessor :scope, :expires_in, :callback_url, :callback_body_type, :customer
13
+ attr_accessor :scope, :expires_in, :callback_url, :callback_body_type, :customer, :escape
14
14
 
15
15
  def initialize(opts = {})
16
16
  @scope = opts[:scope]
@@ -18,6 +18,7 @@ module Qiniu
18
18
  @callback_url = opts[:callback_url]
19
19
  @callback_body_type = opts[:callback_body_type]
20
20
  @customer = opts[:customer]
21
+ @escape = opts[:escape]
21
22
  end
22
23
 
23
24
  def generate_signature
@@ -25,6 +26,7 @@ module Qiniu
25
26
  params[:callbackUrl] = @callback_url if !@callback_url.nil? && !@callback_url.empty?
26
27
  params[:callbackBodyType] = @callback_body_type if !@callback_body_type.nil? && !@callback_body_type.empty?
27
28
  params[:customer] = @customer if !@customer.nil? && !@customer.empty?
29
+ params[:escape] = 1 if @escape == 1 || @escape == true
28
30
  urlsafe_base64_encode(params.to_json)
29
31
  end
30
32
 
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  require 'spec_helper'
4
- require 'qiniu/rs/io'
4
+ require 'qiniu/rs'
5
5
  require 'qiniu/rs/pub'
6
6
  require 'qiniu/rs/eu'
7
7
 
@@ -14,12 +14,15 @@ module Qiniu
14
14
  @bucket = "wm_test_bucket"
15
15
  @key = "image_logo_for_test.png"
16
16
 
17
+ result = Qiniu::RS.mkbucket(@bucket)
18
+ puts result.inspect
19
+ result.should be_true
20
+
17
21
  local_file = File.expand_path('../' + @key, __FILE__)
18
22
  upopts = {:scope => @bucket, :expires_in => 3600, :customer => @customer_id}
19
23
  uptoken = Qiniu::RS.generate_upload_token(upopts)
20
24
 
21
- code, data = Qiniu::RS::IO.upload_with_token(uptoken, local_file, @bucket, @key, nil, nil, nil, true)
22
- code.should == 200
25
+ data = Qiniu::RS.upload_file :uptoken => uptoken, :file => local_file, :bucket => @bucket, :key => @key
23
26
  puts data.inspect
24
27
 
25
28
  code2, data2 = Qiniu::RS::Pub.set_separator(@bucket, "-")
@@ -31,10 +34,12 @@ module Qiniu
31
34
  puts data3.inspect
32
35
  end
33
36
 
34
- #after :all do
35
- # result = Qiniu::RS.drop(@bucket)
36
- # result.should_not be_false
37
- #end
37
+ after :all do
38
+ @bucket = "wm_test_bucket"
39
+ result = Qiniu::RS.drop(@bucket)
40
+ puts result.inspect
41
+ result.should_not be_false
42
+ end
38
43
 
39
44
  context ".set_watermark" do
40
45
  it "should works" do
@@ -10,35 +10,20 @@ module Qiniu
10
10
  describe Image do
11
11
 
12
12
  before :all do
13
- =begin
14
- code, data = Qiniu::RS::Auth.exchange_by_password!("test@qbox.net", "test")
15
- code.should == 200
16
- data.should be_an_instance_of(Hash)
17
- data["access_token"].should_not be_empty
18
- data["refresh_token"].should_not be_empty
19
- data["refresh_token"].should_not be_empty
20
- puts data.inspect
21
- =end
22
13
 
23
14
  @bucket = "test_images_12345"
24
15
  @key = "image_logo_for_test.png"
25
16
 
26
- local_file = File.expand_path('../' + @key, __FILE__)
27
-
28
- result = Qiniu::RS.drop(@bucket)
29
- result.should_not be_false
17
+ result = Qiniu::RS.mkbucket(@bucket)
30
18
  puts result.inspect
31
-
32
- put_url = Qiniu::RS.put_auth(10)
33
- put_url.should_not be_false
34
- put_url.should_not be_empty
35
- result = Qiniu::RS.upload :url => put_url,
36
- :file => local_file,
37
- :bucket => @bucket,
38
- :key => @key,
39
- :enable_crc32_check => true
40
19
  result.should be_true
41
20
 
21
+ local_file = File.expand_path('../' + @key, __FILE__)
22
+
23
+ upopts = {:scope => @bucket, :expires_in => 3600, :customer => "awhy.xu@gmail.com"}
24
+ uptoken = Qiniu::RS.generate_upload_token(upopts)
25
+ data = Qiniu::RS.upload_file :uptoken => uptoken, :file => local_file, :bucket => @bucket, :key => @key
26
+ puts data.inspect
42
27
 
43
28
  result = Qiniu::RS.get(@bucket, @key)
44
29
  result["url"].should_not be_empty
@@ -56,6 +41,13 @@ module Qiniu
56
41
  }
57
42
  end
58
43
 
44
+ after :all do
45
+ @bucket = "test_images_12345"
46
+ result = Qiniu::RS.drop(@bucket)
47
+ puts result.inspect
48
+ result.should_not be_false
49
+ end
50
+
59
51
  context ".info" do
60
52
  it "should works" do
61
53
  code, data = Qiniu::RS::Image.info(@source_image_url)
@@ -10,17 +10,19 @@ module Qiniu
10
10
  describe IO do
11
11
 
12
12
  before :all do
13
- =begin
14
- code, data = Qiniu::RS::Auth.exchange_by_password!("test@qbox.net", "test")
15
- code.should == 200
16
- data.should be_an_instance_of(Hash)
17
- data["access_token"].should_not be_empty
18
- data["refresh_token"].should_not be_empty
19
- data["refresh_token"].should_not be_empty
20
- puts data.inspect
21
- =end
22
- @bucket = "test"
13
+ @bucket = "io_test_bucket"
23
14
  @key = Digest::SHA1.hexdigest (Time.now.to_i+rand(100)).to_s
15
+
16
+ result = Qiniu::RS.mkbucket(@bucket)
17
+ puts result.inspect
18
+ result.should be_true
19
+ end
20
+
21
+ after :all do
22
+ @bucket = "io_test_bucket"
23
+ result = Qiniu::RS.drop(@bucket)
24
+ puts result.inspect
25
+ result.should_not be_false
24
26
  end
25
27
 
26
28
  context ".upload_file" do
@@ -10,24 +10,16 @@ module Qiniu
10
10
  describe Pub do
11
11
 
12
12
  before :all do
13
- @bucket = "test123"
14
- code, data = Qiniu::RS::RS.mkbucket(@bucket)
15
- code.should == 200
16
- puts data.inspect
17
- end
18
-
19
- =begin
20
- context ".mkbucket" do
21
- it "should works" do
22
- code, data = Qiniu::RS::RS.mkbucket(@bucket)
23
- code.should == 200
24
- puts data.inspect
25
- end
13
+ @bucket = "pub_test_bucket"
14
+ result = Qiniu::RS.mkbucket(@bucket)
15
+ puts result.inspect
16
+ result.should_not be_false
26
17
  end
27
- =end
28
18
 
29
19
  after :all do
20
+ @bucket = "pub_test_bucket"
30
21
  result = Qiniu::RS.drop(@bucket)
22
+ puts result.inspect
31
23
  result.should_not be_false
32
24
  end
33
25
 
@@ -11,13 +11,19 @@ module Qiniu
11
11
  describe RS do
12
12
 
13
13
  before :all do
14
-
15
- @bucket = "test_bucket_1234"
14
+ @bucket = "rs_test_bucket"
16
15
  @key = Digest::SHA1.hexdigest (Time.now.to_i+rand(100)).to_s
17
- @domain = 'iovip.qbox.me/test'
16
+ @domain = 'rs-test-bucket.dn.qbox.me'
18
17
 
19
18
  code, data = Qiniu::RS::RS.mkbucket(@bucket)
20
- puts data.inspect
19
+ puts [code, data].inspect
20
+ code.should == 200
21
+ end
22
+
23
+ after :all do
24
+ @bucket = "rs_test_bucket"
25
+ code, data = Qiniu::RS::RS.drop(@bucket)
26
+ puts [code, data].inspect
21
27
  code.should == 200
22
28
  end
23
29
 
@@ -12,12 +12,22 @@ module Qiniu
12
12
  before :all do
13
13
  @localfile = "bigfile.txt"
14
14
  File.open(@localfile, "w"){|f| 9437184.times{f.write(Random.rand(9).to_s)}}
15
- @bucket = "test"
15
+ @bucket = "up_test_bucket"
16
16
  @key = Digest::SHA1.hexdigest(@localfile+Time.now.to_s)
17
+
18
+ code, data = Qiniu::RS::RS.mkbucket(@bucket)
19
+ puts [code, data].inspect
20
+ code.should == 200
17
21
  end
18
22
 
19
23
  after :all do
24
+ @localfile = "bigfile.txt"
20
25
  File.unlink(@localfile) if File.exists?(@localfile)
26
+
27
+ @bucket = "up_test_bucket"
28
+ code, data = Qiniu::RS::RS.drop(@bucket)
29
+ puts [code, data].inspect
30
+ code.should == 200
21
31
  end
22
32
 
23
33
  context ".upload_with_token" do
@@ -10,13 +10,33 @@ module Qiniu
10
10
  before :all do
11
11
  @bucket = 'qiniu_rs_test'
12
12
  @key = Digest::SHA1.hexdigest Time.now.to_s
13
- @domain = 'cdn.example.com'
13
+ @domain = 'qiniu-rs-test.dn.qbox.me'
14
+
15
+ result = Qiniu::RS.mkbucket(@bucket)
16
+ result.should_not be_false
14
17
 
15
18
  @test_image_bucket = 'test_images_12345'
19
+ result2 = Qiniu::RS.mkbucket(@test_image_bucket)
20
+ puts result2.inspect
21
+ result2.should be_true
22
+
16
23
  @test_image_key = 'image_logo_for_test.png'
24
+ local_file = File.expand_path('./rs/' + @test_image_key, File.dirname(__FILE__))
25
+ puts local_file.inspect
26
+ upopts = {:scope => @test_image_bucket, :expires_in => 3600, :customer => "awhy.xu@gmail.com"}
27
+ uptoken = Qiniu::RS.generate_upload_token(upopts)
28
+ data = Qiniu::RS.upload_file :uptoken => uptoken, :file => local_file, :bucket => @test_image_bucket, :key => @test_image_key
29
+ puts data.inspect
30
+ end
17
31
 
18
- result = Qiniu::RS.mkbucket(@bucket)
32
+ after :all do
33
+ result = Qiniu::RS.drop(@bucket)
34
+ puts result.inspect
19
35
  result.should_not be_false
36
+
37
+ result2 = Qiniu::RS.drop(@test_image_bucket)
38
+ puts result2.inspect
39
+ result2.should_not be_false
20
40
  end
21
41
 
22
42
  context ".buckets" do
@@ -116,7 +136,7 @@ module Qiniu
116
136
 
117
137
  context ".upload_file" do
118
138
  it "should works" do
119
- uptoken_opts = {:scope => @bucket}
139
+ uptoken_opts = {:scope => @bucket, :escape => 0}
120
140
  upload_opts = {
121
141
  :uptoken => Qiniu::RS.generate_upload_token(uptoken_opts),
122
142
  :file => __FILE__,
@@ -137,7 +157,7 @@ module Qiniu
137
157
  File.open(localfile, "w"){|f| 5242888.times{f.write(Random.rand(9).to_s)}}
138
158
  key = Digest::SHA1.hexdigest(localfile+Time.now.to_s)
139
159
  # generate the upload token
140
- uptoken_opts = {:scope => @bucket, :expires_in => 3600, :customer => "awhy.xu@gmail.com"}
160
+ uptoken_opts = {:scope => @bucket, :expires_in => 3600, :customer => "awhy.xu@gmail.com", :escape => 0}
141
161
  uptoken = Qiniu::RS.generate_upload_token(uptoken_opts)
142
162
  # uploading
143
163
  upload_opts = {
@@ -311,7 +331,7 @@ module Qiniu
311
331
 
312
332
  context ".generate_upload_token" do
313
333
  it "should works" do
314
- data = Qiniu::RS.generate_upload_token({:scope => 'test_bucket', :expires_in => 3600})
334
+ data = Qiniu::RS.generate_upload_token({:scope => 'test_bucket', :expires_in => 3600, :escape => 0})
315
335
  data.should_not be_empty
316
336
  puts data.inspect
317
337
  end
data/spec/spec_helper.rb CHANGED
@@ -14,10 +14,5 @@ RSpec.configure do |config|
14
14
  :up_host => "http://m1.qbox.me:13019",
15
15
  :pub_host => "http://m1.qbox.me:13012",
16
16
  :eu_host => "http://m1.qbox.me:13050"
17
-
18
- =begin
19
- Qiniu::RS.establish_connection! :access_key => "aPoWOtE9EFca1fLxFCtlkeZAOV7aADVMTLdSydmr",
20
- :secret_key => "L3ShtjCQTCagVCDPfHJoOix7JO_o3qHz3ScyflUG"
21
- =end
22
17
  end
23
18
  end
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.1.0
4
+ version: 3.2.0
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: 2012-10-08 00:00:00.000000000 Z
12
+ date: 2012-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -185,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
185
  version: '0'
186
186
  segments:
187
187
  - 0
188
- hash: -1624363921159069089
188
+ hash: -1772057481364600081
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  none: false
191
191
  requirements:
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
194
194
  version: '0'
195
195
  segments:
196
196
  - 0
197
- hash: -1624363921159069089
197
+ hash: -1772057481364600081
198
198
  requirements: []
199
199
  rubyforge_project:
200
200
  rubygems_version: 1.8.24