qiniu_jxb 6.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +18 -0
- data/.rspec +1 -0
- data/.travis.yml +9 -0
- data/CHANGELOG.md +118 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +37 -0
- data/LICENSE +22 -0
- data/README.md +47 -0
- data/Rakefile +21 -0
- data/docs/README.md +790 -0
- data/lib/qiniu-rs.rb +2 -0
- data/lib/qiniu.rb +209 -0
- data/lib/qiniu/abstract.rb +22 -0
- data/lib/qiniu/adt.rb +46 -0
- data/lib/qiniu/auth.rb +234 -0
- data/lib/qiniu/config.rb +58 -0
- data/lib/qiniu/exceptions.rb +120 -0
- data/lib/qiniu/fop.rb +4 -0
- data/lib/qiniu/http.rb +137 -0
- data/lib/qiniu/image.rb +38 -0
- data/lib/qiniu/log.rb +15 -0
- data/lib/qiniu/management.rb +128 -0
- data/lib/qiniu/misc.rb +33 -0
- data/lib/qiniu/pfop.rb +124 -0
- data/lib/qiniu/resumable_upload.rb +319 -0
- data/lib/qiniu/storage.rb +5 -0
- data/lib/qiniu/tokens/access_token.rb +21 -0
- data/lib/qiniu/tokens/download_token.rb +31 -0
- data/lib/qiniu/tokens/qbox_token.rb +38 -0
- data/lib/qiniu/tokens/upload_token.rb +47 -0
- data/lib/qiniu/upload.rb +138 -0
- data/lib/qiniu/utils.rb +109 -0
- data/lib/qiniu/version.rb +17 -0
- data/qiniu.gemspec +29 -0
- data/spec/qiniu/abstract_spec.rb +30 -0
- data/spec/qiniu/auth_spec.rb +81 -0
- data/spec/qiniu/image_logo_for_test.png +0 -0
- data/spec/qiniu/image_spec.rb +89 -0
- data/spec/qiniu/management_spec.rb +156 -0
- data/spec/qiniu/misc_spec.rb +59 -0
- data/spec/qiniu/pfop_spec.rb +89 -0
- data/spec/qiniu/qiniu_spec.rb +329 -0
- data/spec/qiniu/tokens/qbox_token_spec.rb +29 -0
- data/spec/qiniu/upload_spec.rb +308 -0
- data/spec/qiniu/utils_spec.rb +49 -0
- data/spec/qiniu/version_spec.rb +10 -0
- data/spec/spec_helper.rb +19 -0
- metadata +220 -0
@@ -0,0 +1,329 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'digest/sha1'
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'qiniu'
|
6
|
+
require 'qiniu/exceptions'
|
7
|
+
|
8
|
+
module Qiniu
|
9
|
+
describe Qiniu do
|
10
|
+
|
11
|
+
before :all do
|
12
|
+
@bucket = 'RubySDK-Test'
|
13
|
+
@bucket = make_unique_bucket(@bucket)
|
14
|
+
|
15
|
+
@test_image_bucket = @bucket
|
16
|
+
|
17
|
+
### 尝试创建Bucket
|
18
|
+
result = Qiniu.mkbucket(@bucket)
|
19
|
+
puts result.inspect
|
20
|
+
|
21
|
+
@key = Digest::SHA1.hexdigest Time.now.to_s
|
22
|
+
@key = make_unique_key_in_bucket(@key)
|
23
|
+
|
24
|
+
@key2 = @key + rand(100).to_s
|
25
|
+
#@domain = @bucket + '.dn.qbox.me'
|
26
|
+
|
27
|
+
@test_image_key = 'image_logo_for_test.png'
|
28
|
+
local_file = File.expand_path('./' + @test_image_key, File.dirname(__FILE__))
|
29
|
+
puts local_file.inspect
|
30
|
+
upopts = {:scope => @test_image_bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
31
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
32
|
+
data = Qiniu.upload_file :uptoken => uptoken, :file => local_file, :bucket => @test_image_bucket, :key => @test_image_key
|
33
|
+
puts data.inspect
|
34
|
+
end
|
35
|
+
|
36
|
+
after :all do
|
37
|
+
### 不删除Bucket以备下次使用
|
38
|
+
end
|
39
|
+
|
40
|
+
context ".buckets" do
|
41
|
+
it "should works" do
|
42
|
+
result = Qiniu.buckets
|
43
|
+
result.should_not be_false
|
44
|
+
puts result.inspect
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context ".set_protected" do
|
49
|
+
it "should works" do
|
50
|
+
result = Qiniu.set_protected(@bucket, 1)
|
51
|
+
result.should_not be_false
|
52
|
+
puts result.inspect
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
context ".set_separator" do
|
57
|
+
it "should works" do
|
58
|
+
result = Qiniu.set_separator(@bucket, "-")
|
59
|
+
result.should_not be_false
|
60
|
+
puts result.inspect
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context ".set_style" do
|
65
|
+
it "should works" do
|
66
|
+
result = Qiniu.set_style(@bucket, "small.jpg", "imageMogr/auto-orient/thumbnail/!120x120r/gravity/center/crop/!120x120/quality/80")
|
67
|
+
result.should_not be_false
|
68
|
+
puts result.inspect
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context ".unset_style" do
|
73
|
+
it "should works" do
|
74
|
+
result = Qiniu.unset_style(@bucket, "small.jpg")
|
75
|
+
result.should_not be_false
|
76
|
+
puts result.inspect
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context ".upload_file" do
|
81
|
+
it "should works" do
|
82
|
+
uptoken_opts = {:scope => @bucket, :escape => 0}
|
83
|
+
upload_opts = {
|
84
|
+
:uptoken => Qiniu.generate_upload_token(uptoken_opts),
|
85
|
+
:file => __FILE__,
|
86
|
+
:bucket => @bucket,
|
87
|
+
:key => @key,
|
88
|
+
:enable_crc32_check => true
|
89
|
+
}
|
90
|
+
result = Qiniu.upload_file(upload_opts)
|
91
|
+
result.should_not be_false
|
92
|
+
puts result.inspect
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should raise MissingArgsError" do
|
96
|
+
uptoken_opts = {:scope => @bucket, :escape => 0}
|
97
|
+
upload_opts = {
|
98
|
+
:uptoken => Qiniu.generate_upload_token(uptoken_opts),
|
99
|
+
:file => __FILE__,
|
100
|
+
:key => @key,
|
101
|
+
:enable_crc32_check => true
|
102
|
+
}
|
103
|
+
lambda { Qiniu.upload_file(upload_opts) }.should raise_error(MissingArgsError)
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should raise NoSuchFileError" do
|
107
|
+
uptoken_opts = {:scope => @bucket, :escape => 0}
|
108
|
+
upload_opts = {
|
109
|
+
:uptoken => Qiniu.generate_upload_token(uptoken_opts),
|
110
|
+
:file => 'no_this_file',
|
111
|
+
:bucket => @bucket,
|
112
|
+
:key => @key,
|
113
|
+
:enable_crc32_check => true
|
114
|
+
}
|
115
|
+
lambda { Qiniu.upload_file(upload_opts) }.should raise_error(NoSuchFileError)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context ".resumable_upload_file" do
|
120
|
+
it "should works" do
|
121
|
+
# generate bigfile for testing
|
122
|
+
localfile = "test_bigfile"
|
123
|
+
File.open(localfile, "w"){|f| 5242888.times{f.write(rand(9).to_s)}}
|
124
|
+
key = Digest::SHA1.hexdigest(localfile+Time.now.to_s)
|
125
|
+
# generate the upload token
|
126
|
+
uptoken_opts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com", :escape => 0}
|
127
|
+
uptoken = Qiniu.generate_upload_token(uptoken_opts)
|
128
|
+
# uploading
|
129
|
+
upload_opts = {
|
130
|
+
:uptoken => uptoken,
|
131
|
+
:file => localfile,
|
132
|
+
:bucket => @bucket,
|
133
|
+
:key => key
|
134
|
+
}
|
135
|
+
#uploading
|
136
|
+
result1 = Qiniu.upload_file(upload_opts)
|
137
|
+
#drop the bigfile
|
138
|
+
File.unlink(localfile) if File.exists?(localfile)
|
139
|
+
#expect
|
140
|
+
puts result1.inspect
|
141
|
+
result1.should_not be_false
|
142
|
+
result1.should_not be_empty
|
143
|
+
#stat
|
144
|
+
result2 = Qiniu.stat(@bucket, key)
|
145
|
+
puts result2.inspect
|
146
|
+
result2.should_not be_false
|
147
|
+
#delete
|
148
|
+
result3 = Qiniu.delete(@bucket, key)
|
149
|
+
puts result3.inspect
|
150
|
+
result3.should_not be_false
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
context ".stat" do
|
155
|
+
it "should works" do
|
156
|
+
result = Qiniu.stat(@bucket, @key)
|
157
|
+
result.should_not be_false
|
158
|
+
result.should_not be_empty
|
159
|
+
puts result.inspect
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
context ".get" do
|
164
|
+
it "should works" do
|
165
|
+
result = Qiniu.get(@bucket, @key, "qiniu_spec.rb", 10)
|
166
|
+
result.should_not be_false
|
167
|
+
result.should_not be_empty
|
168
|
+
puts result.inspect
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
context ".download" do
|
173
|
+
it "should works" do
|
174
|
+
result = Qiniu.download(@bucket, @key, "rs_spec.rb", 10)
|
175
|
+
result.should_not be_false
|
176
|
+
result.should_not be_empty
|
177
|
+
puts result.inspect
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context ".batch" do
|
182
|
+
it "should works" do
|
183
|
+
result = Qiniu.batch("stat", @bucket, [@key])
|
184
|
+
result.should_not be_false
|
185
|
+
result.should_not be_empty
|
186
|
+
puts result.inspect
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
context ".batch_stat" do
|
191
|
+
it "should works" do
|
192
|
+
result = Qiniu.batch_stat(@bucket, [@key])
|
193
|
+
result.should_not be_false
|
194
|
+
result.should_not be_empty
|
195
|
+
puts result.inspect
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
context ".batch_get" do
|
200
|
+
it "should works" do
|
201
|
+
result = Qiniu.batch_get(@bucket, [@key])
|
202
|
+
result.should_not be_false
|
203
|
+
result.should_not be_empty
|
204
|
+
puts result.inspect
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
context ".batch_download" do
|
209
|
+
it "should works" do
|
210
|
+
result = Qiniu.batch_download(@bucket, [@key])
|
211
|
+
result.should_not be_false
|
212
|
+
result.should_not be_empty
|
213
|
+
puts result.inspect
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
=begin
|
218
|
+
context ".batch_copy" do
|
219
|
+
it "should works" do
|
220
|
+
result = Qiniu.batch_copy [@bucket, @key, @bucket, @key2]
|
221
|
+
result.should_not be_false
|
222
|
+
|
223
|
+
#result2 = Qiniu.stat(@bucket, @key2)
|
224
|
+
#result2.should_not be_false
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
context ".batch_move" do
|
229
|
+
it "should works" do
|
230
|
+
result = Qiniu.batch_move [@bucket, @key, @bucket, @key2]
|
231
|
+
result.should_not be_false
|
232
|
+
|
233
|
+
#result2 = Qiniu.stat(@bucket, @key2)
|
234
|
+
#result2.should_not be_false
|
235
|
+
|
236
|
+
result3 = Qiniu.batch_move [@bucket, @key2, @bucket, @key]
|
237
|
+
result3.should_not be_false
|
238
|
+
end
|
239
|
+
end
|
240
|
+
=end
|
241
|
+
|
242
|
+
context ".move" do
|
243
|
+
it "should works" do
|
244
|
+
result = Qiniu.move(@bucket, @key, @bucket, @key2)
|
245
|
+
result.should_not be_false
|
246
|
+
|
247
|
+
result2 = Qiniu.stat(@bucket, @key2)
|
248
|
+
result2.should_not be_false
|
249
|
+
|
250
|
+
result3 = Qiniu.move(@bucket, @key2, @bucket, @key)
|
251
|
+
result3.should_not be_false
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context ".copy" do
|
256
|
+
it "should works" do
|
257
|
+
result = Qiniu.copy(@bucket, @key, @bucket, @key2)
|
258
|
+
result.should_not be_false
|
259
|
+
|
260
|
+
result3 = Qiniu.delete(@bucket, @key2)
|
261
|
+
result3.should_not be_false
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
context ".delete" do
|
266
|
+
it "should works" do
|
267
|
+
result = Qiniu.delete(@bucket, @key)
|
268
|
+
result.should_not be_false
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
context ".image_info" do
|
273
|
+
it "should works" do
|
274
|
+
data = Qiniu.get(@test_image_bucket, @test_image_key)
|
275
|
+
data.should_not be_false
|
276
|
+
data.should_not be_empty
|
277
|
+
puts data.inspect
|
278
|
+
result = Qiniu.image_info(data["url"])
|
279
|
+
result.should_not be_false
|
280
|
+
result.should_not be_empty
|
281
|
+
puts result.inspect
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
context ".image_mogrify_save_as" do
|
286
|
+
it "should works" do
|
287
|
+
data = Qiniu.get(@test_image_bucket, @test_image_key)
|
288
|
+
data.should_not be_false
|
289
|
+
data.should_not be_empty
|
290
|
+
puts data.inspect
|
291
|
+
|
292
|
+
dest_key = "cropped-" + @test_image_key
|
293
|
+
src_img_url = data["url"]
|
294
|
+
mogrify_options = {
|
295
|
+
:thumbnail => "!120x120>",
|
296
|
+
:gravity => "center",
|
297
|
+
:crop => "!120x120a0a0",
|
298
|
+
:quality => 85,
|
299
|
+
:rotate => 45,
|
300
|
+
:format => "jpg",
|
301
|
+
:auto_orient => true
|
302
|
+
}
|
303
|
+
result2 = Qiniu.image_mogrify_save_as(@test_image_bucket, dest_key, src_img_url, mogrify_options)
|
304
|
+
result2.should_not be_false
|
305
|
+
result2.should_not be_empty
|
306
|
+
puts result2.inspect
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
context ".generate_upload_token" do
|
311
|
+
it "should works" do
|
312
|
+
data = Qiniu.generate_upload_token({:scope => @bucket, :expires_in => 3600, :escape => 0})
|
313
|
+
data.should_not be_empty
|
314
|
+
puts data.inspect
|
315
|
+
data.split(":").length.should == 3
|
316
|
+
end
|
317
|
+
end
|
318
|
+
|
319
|
+
context ".generate_download_token" do
|
320
|
+
it "should works" do
|
321
|
+
data = Qiniu.generate_download_token({:expires_in => 1, :pattern => 'http://*.dn.qbox.me/*'})
|
322
|
+
data.should_not be_empty
|
323
|
+
puts data.inspect
|
324
|
+
data.split(":").length.should == 3
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
end
|
329
|
+
end # module Qiniu
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'qiniu/tokens/qbox_token'
|
5
|
+
|
6
|
+
module Qiniu
|
7
|
+
module RS
|
8
|
+
describe QboxToken do
|
9
|
+
before :all do
|
10
|
+
@qbox_token = QboxToken.new(:url => 'www.qiniu.com?key1=value1',
|
11
|
+
:params => { :key2 => 'value2' })
|
12
|
+
@qbox_token.access_key = 'access_key'
|
13
|
+
@qbox_token.secret_key = 'secret_key'
|
14
|
+
end
|
15
|
+
|
16
|
+
context "#generate_token" do
|
17
|
+
it "should generate token" do
|
18
|
+
@qbox_token.generate_token.should_not be_empty
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#generate_signature" do
|
23
|
+
it "should generate signature" do
|
24
|
+
@qbox_token.generate_signature.should == "www.qiniu.com?key1=value1\nkey2=value2"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,308 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# vim: sw=2 ts=2
|
3
|
+
|
4
|
+
require 'spec_helper'
|
5
|
+
require 'qiniu/auth'
|
6
|
+
require 'qiniu/storage'
|
7
|
+
require 'digest/sha1'
|
8
|
+
|
9
|
+
module Qiniu
|
10
|
+
module Storage
|
11
|
+
describe Storage do
|
12
|
+
|
13
|
+
before :all do
|
14
|
+
@bucket = 'RubySDK-Test-Storage'
|
15
|
+
@bucket = make_unique_bucket(@bucket)
|
16
|
+
|
17
|
+
### 尝试创建Bucket
|
18
|
+
result = Qiniu.mkbucket(@bucket)
|
19
|
+
puts result.inspect
|
20
|
+
|
21
|
+
@key = Digest::SHA1.hexdigest((Time.now.to_i+rand(100)).to_s)
|
22
|
+
@key = make_unique_key_in_bucket(@key)
|
23
|
+
puts "key=#{@key}"
|
24
|
+
|
25
|
+
@localfile_5m = "5M.txt"
|
26
|
+
File.open(@localfile_5m, "w"){|f| 5242888.times{ f.write(rand(9).to_s) }}
|
27
|
+
@key_5m = Digest::SHA1.hexdigest(@localfile_5m+Time.now.to_s)
|
28
|
+
@key_5m = make_unique_key_in_bucket(@key_5m)
|
29
|
+
puts "key_5m=#{@key_5m}"
|
30
|
+
|
31
|
+
@localfile_4m = "4M.txt"
|
32
|
+
File.open(@localfile_4m, "w"){|f| (1 << 22).times{ f.write(rand(9).to_s) }}
|
33
|
+
@key_4m = Digest::SHA1.hexdigest(@localfile_4m+Time.now.to_s)
|
34
|
+
@key_4m = make_unique_key_in_bucket(@key_4m)
|
35
|
+
puts "key_4m=#{@key_4m}"
|
36
|
+
|
37
|
+
@localfile_8m = "8M.txt"
|
38
|
+
File.open(@localfile_8m, "w"){|f| (1 << 23).times{ f.write(rand(9).to_s) }}
|
39
|
+
@key_8m = Digest::SHA1.hexdigest(@localfile_8m+Time.now.to_s)
|
40
|
+
@key_8m = make_unique_key_in_bucket(@key_8m)
|
41
|
+
puts "key_8m=#{@key_8m}"
|
42
|
+
|
43
|
+
@localfile_1m = "1M.txt"
|
44
|
+
File.open(@localfile_1m, "w"){|f| (1 << 20).times{ f.write(rand(9).to_s) }}
|
45
|
+
@key_1m = Digest::SHA1.hexdigest(@localfile_1m+Time.now.to_s)
|
46
|
+
@key_1m = make_unique_key_in_bucket(@key_1m)
|
47
|
+
puts "key_1m=#{@key_1m}"
|
48
|
+
end
|
49
|
+
|
50
|
+
after :all do
|
51
|
+
### 清除本地临时文件
|
52
|
+
File.unlink(@localfile_5m) if File.exists?(@localfile_5m)
|
53
|
+
File.unlink(@localfile_4m) if File.exists?(@localfile_4m)
|
54
|
+
File.unlink(@localfile_8m) if File.exists?(@localfile_8m)
|
55
|
+
File.unlink(@localfile_1m) if File.exists?(@localfile_1m)
|
56
|
+
|
57
|
+
### 不删除Bucket以备下次使用
|
58
|
+
end
|
59
|
+
|
60
|
+
### 测试单文件直传
|
61
|
+
context ".upload_with_token" do
|
62
|
+
it "should works" do
|
63
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
64
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
65
|
+
code, data, raw_headers = Qiniu::Storage.upload_with_token(
|
66
|
+
uptoken,
|
67
|
+
__FILE__,
|
68
|
+
@bucket,
|
69
|
+
@key,
|
70
|
+
nil,
|
71
|
+
nil,
|
72
|
+
nil,
|
73
|
+
true
|
74
|
+
)
|
75
|
+
code.should == 200
|
76
|
+
puts data.inspect
|
77
|
+
puts raw_headers.inspect
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context ".stat" do
|
82
|
+
it "should exists" do
|
83
|
+
code, data = Qiniu::Storage.stat(@bucket, @key)
|
84
|
+
puts data.inspect
|
85
|
+
code.should == 200
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
context ".delete" do
|
90
|
+
it "should works" do
|
91
|
+
code, data = Qiniu::Storage.delete(@bucket, @key)
|
92
|
+
puts data.inspect
|
93
|
+
code.should == 200
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context ".upload_with_token_2" do
|
98
|
+
it "should works" do
|
99
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :endUser => "why404@gmail.com"}
|
100
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
101
|
+
|
102
|
+
code, data, raw_headers = Qiniu::Storage.upload_with_token_2(
|
103
|
+
uptoken,
|
104
|
+
__FILE__,
|
105
|
+
@key
|
106
|
+
)
|
107
|
+
|
108
|
+
code.should == 200
|
109
|
+
puts data.inspect
|
110
|
+
puts raw_headers.inspect
|
111
|
+
end
|
112
|
+
end # .upload_with_token_2
|
113
|
+
|
114
|
+
context ".stat" do
|
115
|
+
it "should exists" do
|
116
|
+
code, data = Qiniu::Storage.stat(@bucket, @key)
|
117
|
+
puts data.inspect
|
118
|
+
code.should == 200
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
context ".delete" do
|
123
|
+
it "should works" do
|
124
|
+
code, data = Qiniu::Storage.delete(@bucket, @key)
|
125
|
+
puts data.inspect
|
126
|
+
code.should == 200
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
context ".upload_with_put_policy" do
|
131
|
+
it "should works" do
|
132
|
+
pp = Qiniu::Auth::PutPolicy.new(@bucket, @key)
|
133
|
+
pp.end_user = "why404@gmail.com"
|
134
|
+
puts 'put_policy=' + pp.to_json
|
135
|
+
|
136
|
+
code, data, raw_headers = Qiniu::Storage.upload_with_put_policy(
|
137
|
+
pp,
|
138
|
+
__FILE__,
|
139
|
+
@key + '-not-equal'
|
140
|
+
)
|
141
|
+
code.should_not == 200
|
142
|
+
puts data.inspect
|
143
|
+
puts raw_headers.inspect
|
144
|
+
|
145
|
+
code, data, raw_headers = Qiniu::Storage.upload_with_put_policy(
|
146
|
+
pp,
|
147
|
+
__FILE__,
|
148
|
+
@key
|
149
|
+
)
|
150
|
+
|
151
|
+
code.should == 200
|
152
|
+
puts data.inspect
|
153
|
+
puts raw_headers.inspect
|
154
|
+
end
|
155
|
+
end # .upload_with_put_policy
|
156
|
+
|
157
|
+
context ".stat" do
|
158
|
+
it "should exists" do
|
159
|
+
code, data = Qiniu::Storage.stat(@bucket, @key)
|
160
|
+
puts data.inspect
|
161
|
+
code.should == 200
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
context ".delete" do
|
166
|
+
it "should works" do
|
167
|
+
code, data = Qiniu::Storage.delete(@bucket, @key)
|
168
|
+
puts data.inspect
|
169
|
+
code.should == 200
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
### 测试断点续上传
|
174
|
+
context ".resumable_upload_with_token" do
|
175
|
+
it "should works" do
|
176
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
177
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
178
|
+
code, data, raw_headers = Qiniu::Storage.resumable_upload_with_token(
|
179
|
+
uptoken,
|
180
|
+
@localfile_5m,
|
181
|
+
@bucket,
|
182
|
+
@key_5m
|
183
|
+
)
|
184
|
+
(code/100).should == 2
|
185
|
+
puts data.inspect
|
186
|
+
puts raw_headers.inspect
|
187
|
+
puts "key_5m=#{@key_5m}"
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
context ".stat" do
|
192
|
+
it "should exists" do
|
193
|
+
code, data = Qiniu::Storage.stat(@bucket, @key_5m)
|
194
|
+
puts data.inspect
|
195
|
+
code.should == 200
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
context ".delete" do
|
200
|
+
it "should works" do
|
201
|
+
code, data = Qiniu::Storage.delete(@bucket, @key_5m)
|
202
|
+
puts data.inspect
|
203
|
+
code.should == 200
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
context ".resumable_upload_with_token2" do
|
208
|
+
it "should works" do
|
209
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
210
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
211
|
+
code, data, raw_headers = Qiniu::Storage.resumable_upload_with_token(
|
212
|
+
uptoken,
|
213
|
+
@localfile_4m,
|
214
|
+
@bucket,
|
215
|
+
@key_4m
|
216
|
+
)
|
217
|
+
(code/100).should == 2
|
218
|
+
puts data.inspect
|
219
|
+
puts raw_headers.inspect
|
220
|
+
puts "key_4m=#{@key_4m}"
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
context ".stat" do
|
225
|
+
it "should exists" do
|
226
|
+
code, data = Qiniu::Storage.stat(@bucket, @key_4m)
|
227
|
+
puts data.inspect
|
228
|
+
code.should == 200
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
context ".delete" do
|
233
|
+
it "should works" do
|
234
|
+
code, data = Qiniu::Storage.delete(@bucket, @key_4m)
|
235
|
+
puts data.inspect
|
236
|
+
code.should == 200
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
context ".resumable_upload_with_token3" do
|
241
|
+
it "should works" do
|
242
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
243
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
244
|
+
code, data, raw_headers = Qiniu::Storage.resumable_upload_with_token(
|
245
|
+
uptoken,
|
246
|
+
@localfile_8m,
|
247
|
+
@bucket,
|
248
|
+
@key_8m
|
249
|
+
)
|
250
|
+
(code/100).should == 2
|
251
|
+
puts data.inspect
|
252
|
+
puts raw_headers.inspect
|
253
|
+
puts "key_8m=#{@key_8m}"
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
257
|
+
context ".stat" do
|
258
|
+
it "should exists" do
|
259
|
+
code, data = Qiniu::Storage.stat(@bucket, @key_8m)
|
260
|
+
puts data.inspect
|
261
|
+
code.should == 200
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
context ".delete" do
|
266
|
+
it "should works" do
|
267
|
+
code, data = Qiniu::Storage.delete(@bucket, @key_8m)
|
268
|
+
puts data.inspect
|
269
|
+
code.should == 200
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
context ".resumable_upload_with_token4" do
|
274
|
+
it "should works" do
|
275
|
+
upopts = {:scope => @bucket, :expires_in => 3600, :customer => "why404@gmail.com"}
|
276
|
+
uptoken = Qiniu.generate_upload_token(upopts)
|
277
|
+
code, data, raw_headers = Qiniu::Storage.resumable_upload_with_token(
|
278
|
+
uptoken,
|
279
|
+
@localfile_1m,
|
280
|
+
@bucket,
|
281
|
+
@key_1m
|
282
|
+
)
|
283
|
+
(code/100).should == 2
|
284
|
+
puts data.inspect
|
285
|
+
puts raw_headers.inspect
|
286
|
+
puts "key_1m=#{@key_1m}"
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
context ".stat" do
|
291
|
+
it "should exists" do
|
292
|
+
code, data = Qiniu::Storage.stat(@bucket, @key_1m)
|
293
|
+
puts data.inspect
|
294
|
+
code.should == 200
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
context ".delete" do
|
299
|
+
it "should works" do
|
300
|
+
code, data = Qiniu::Storage.delete(@bucket, @key_1m)
|
301
|
+
puts data.inspect
|
302
|
+
code.should == 200
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
end
|
307
|
+
end # module Storage
|
308
|
+
end # module Qiniu
|