qiniu-rs 3.2.0 → 3.2.1
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/Gemfile.lock +1 -1
- data/docs/NEWS.md +25 -0
- data/docs/README.md +5 -1
- data/lib/qiniu/rs.rb +4 -2
- data/lib/qiniu/rs/io.rb +4 -3
- data/lib/qiniu/rs/up.rb +8 -6
- data/lib/qiniu/rs/version.rb +1 -1
- metadata +5 -4
data/Gemfile.lock
CHANGED
data/docs/NEWS.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
## CHANGE LOG
|
2
|
+
|
3
|
+
### v3.2.1
|
4
|
+
|
5
|
+
allow images uploaded auto-orient.
|
6
|
+
|
7
|
+
允许图片上传成功后自动旋转。
|
8
|
+
|
9
|
+
参考:
|
10
|
+
|
11
|
+
1. [[API] multipart/form-data 上传文件之 action 字段详解](http://docs.qiniutek.com/v3/api/io/#upload-action)
|
12
|
+
2. [[SDK] Qiniu::RS.upload_file() 方法中的参数增加了 :rotate 选项](http://docs.qiniutek.com/v3/sdk/ruby/#upload-server-side)
|
13
|
+
|
14
|
+
### v3.2.0
|
15
|
+
|
16
|
+
2012-11-06
|
17
|
+
|
18
|
+
allow files uploaded auto callback some APIs (like imageInfo, exif, etc…), and add those APIs callback results as part of the custom data for POST biz-server.
|
19
|
+
|
20
|
+
允许上传文件(图片)成功后执行回调指定的 API (比如 imageInfo, exif 接口等),并将指定API的回调结果一并 POST 发送给客户方的业务服务器。
|
21
|
+
|
22
|
+
参考:
|
23
|
+
|
24
|
+
1. [[API] 生成上传授权凭证 uploadToken 之 escape 参数详解](http://docs.qiniutek.com/v3/api/io/#escape-expression)
|
25
|
+
2. [[SDK] Qiniu::RS.generate_upload_token() 方法中的参数增加了 :escape 选项](http://docs.qiniutek.com/v3/sdk/ruby/#generate-upload-token)
|
data/docs/README.md
CHANGED
@@ -170,7 +170,8 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
170
170
|
:mime_type => file_mime_type,
|
171
171
|
:note => some_notes,
|
172
172
|
:callback_params => callback_params,
|
173
|
-
:enable_crc32_check => false
|
173
|
+
:enable_crc32_check => false,
|
174
|
+
:rotate => auto_rotate
|
174
175
|
|
175
176
|
**参数**
|
176
177
|
|
@@ -198,6 +199,9 @@ title: Ruby SDK 使用指南 | 七牛云存储
|
|
198
199
|
:enable_crc32_check
|
199
200
|
: 可选,Boolean 类型,是否启用文件上传 crc32 校验,缺省为 false 。
|
200
201
|
|
202
|
+
:rotate
|
203
|
+
: 可选,数字类型,上传图片时专用,可针对图片上传后进行旋转。该参数值为 0 :表示根据图像EXIF信息自动旋转;值为 1 : 右转90度;值为 2 :右转180度;值为 3 : 右转270度。
|
204
|
+
|
201
205
|
**返回值**
|
202
206
|
|
203
207
|
上传成功,返回如下一个 Hash:
|
data/lib/qiniu/rs.rb
CHANGED
@@ -114,7 +114,8 @@ module Qiniu
|
|
114
114
|
opts[:mime_type],
|
115
115
|
opts[:note],
|
116
116
|
opts[:customer],
|
117
|
-
opts[:callback_params]
|
117
|
+
opts[:callback_params],
|
118
|
+
opts[:rotate])
|
118
119
|
else
|
119
120
|
code, data = IO.upload_with_token(opts[:uptoken],
|
120
121
|
opts[:file],
|
@@ -123,7 +124,8 @@ module Qiniu
|
|
123
124
|
opts[:mime_type],
|
124
125
|
opts[:note],
|
125
126
|
opts[:callback_params],
|
126
|
-
opts[:enable_crc32_check]
|
127
|
+
opts[:enable_crc32_check],
|
128
|
+
opts[:rotate])
|
127
129
|
end
|
128
130
|
raise UploadFailedError.new(code, data) if code != StatusOK
|
129
131
|
return data
|
data/lib/qiniu/rs/io.rb
CHANGED
@@ -34,8 +34,8 @@ module Qiniu
|
|
34
34
|
Auth.request url, ::IO.read(local_file), options
|
35
35
|
end
|
36
36
|
|
37
|
-
def upload_with_token(uptoken, local_file, bucket, key = nil, mime_type = nil, custom_meta = nil, callback_params = nil, enable_crc32_check = false)
|
38
|
-
action_params = _generate_action_params(local_file, bucket, key, mime_type, custom_meta, enable_crc32_check)
|
37
|
+
def upload_with_token(uptoken, local_file, bucket, key = nil, mime_type = nil, custom_meta = nil, callback_params = nil, enable_crc32_check = false, rotate = nil)
|
38
|
+
action_params = _generate_action_params(local_file, bucket, key, mime_type, custom_meta, enable_crc32_check, rotate)
|
39
39
|
callback_params = {:bucket => bucket, :key => key, :mime_type => mime_type} if callback_params.nil?
|
40
40
|
callback_query_string = Utils.generate_query_string(callback_params)
|
41
41
|
url = Config.settings[:up_host] + '/upload'
|
@@ -43,7 +43,7 @@ module Qiniu
|
|
43
43
|
end
|
44
44
|
|
45
45
|
private
|
46
|
-
def _generate_action_params(local_file, bucket, key = nil, mime_type = nil, custom_meta = nil, enable_crc32_check = false)
|
46
|
+
def _generate_action_params(local_file, bucket, key = nil, mime_type = nil, custom_meta = nil, enable_crc32_check = false, rotate = nil)
|
47
47
|
raise NoSuchFileError, local_file unless File.exist?(local_file)
|
48
48
|
key = Digest::SHA1.hexdigest(local_file + Time.now.to_s) if key.nil?
|
49
49
|
entry_uri = bucket + ':' + key
|
@@ -54,6 +54,7 @@ module Qiniu
|
|
54
54
|
action_params = '/rs-put/' + Utils.urlsafe_base64_encode(entry_uri) + '/mimeType/' + Utils.urlsafe_base64_encode(mime_type)
|
55
55
|
action_params += '/meta/' + Utils.urlsafe_base64_encode(custom_meta) unless custom_meta.nil?
|
56
56
|
action_params += '/crc32/' + Utils.crc32checksum(local_file).to_s if enable_crc32_check
|
57
|
+
action_params += '/rotate/' + rotate if !rotate.nil? && rotate.to_i >= 0
|
57
58
|
action_params
|
58
59
|
end
|
59
60
|
|
data/lib/qiniu/rs/up.rb
CHANGED
@@ -115,7 +115,8 @@ module Qiniu
|
|
115
115
|
mime_type = nil,
|
116
116
|
custom_meta = nil,
|
117
117
|
customer = nil,
|
118
|
-
callback_params = nil
|
118
|
+
callback_params = nil,
|
119
|
+
rotate = nil)
|
119
120
|
raise NoSuchFileError, local_file unless File.exist?(local_file)
|
120
121
|
begin
|
121
122
|
ifile = File.open(local_file, 'rb')
|
@@ -127,9 +128,9 @@ module Qiniu
|
|
127
128
|
mime_type = mime.empty? ? 'application/octet-stream' : mime[0].content_type
|
128
129
|
end
|
129
130
|
if fsize > Config.settings[:block_size]
|
130
|
-
code, data = _resumable_upload(uptoken, fh, fsize, bucket, key, mime_type, custom_meta, customer, callback_params)
|
131
|
+
code, data = _resumable_upload(uptoken, fh, fsize, bucket, key, mime_type, custom_meta, customer, callback_params, rotate)
|
131
132
|
else
|
132
|
-
code, data = IO.upload_with_token(uptoken, local_file, bucket, key, mime_type, custom_meta, callback_params, true)
|
133
|
+
code, data = IO.upload_with_token(uptoken, local_file, bucket, key, mime_type, custom_meta, callback_params, true, rotate)
|
133
134
|
end
|
134
135
|
[code, data]
|
135
136
|
ensure
|
@@ -289,13 +290,14 @@ module Qiniu
|
|
289
290
|
return [code, data]
|
290
291
|
end
|
291
292
|
|
292
|
-
def _mkfile(uptoken, entry_uri, fsize, checksums, mime_type = nil, custom_meta = nil, customer = nil, callback_params = nil)
|
293
|
+
def _mkfile(uptoken, entry_uri, fsize, checksums, mime_type = nil, custom_meta = nil, customer = nil, callback_params = nil, rotate = nil)
|
293
294
|
path = '/rs-mkfile/' + Utils.urlsafe_base64_encode(entry_uri) + "/fsize/#{fsize}"
|
294
295
|
path += '/mimeType/' + Utils.urlsafe_base64_encode(mime_type) if !mime_type.nil? && !mime_type.empty?
|
295
296
|
path += '/meta/' + Utils.urlsafe_base64_encode(custom_meta) if !custom_meta.nil? && !custom_meta.empty?
|
296
297
|
path += '/customer/' + customer if !customer.nil? && !customer.empty?
|
297
298
|
callback_query_string = Utils.generate_query_string(callback_params) if !callback_params.nil? && !callback_params.empty?
|
298
299
|
path += '/params/' + Utils.urlsafe_base64_encode(callback_query_string) if !callback_query_string.nil? && !callback_query_string.empty?
|
300
|
+
path += '/rotate/' + rotate if !rotate.nil? && rotate.to_i >= 0
|
299
301
|
url = Config.settings[:up_host] + path
|
300
302
|
body = ''
|
301
303
|
checksums.each do |checksum|
|
@@ -304,7 +306,7 @@ module Qiniu
|
|
304
306
|
_call_binary_with_token(uptoken, url, body)
|
305
307
|
end
|
306
308
|
|
307
|
-
def _resumable_upload(uptoken, fh, fsize, bucket, key, mime_type = nil, custom_meta = nil, customer = nil, callback_params = nil)
|
309
|
+
def _resumable_upload(uptoken, fh, fsize, bucket, key, mime_type = nil, custom_meta = nil, customer = nil, callback_params = nil, rotate = nil)
|
308
310
|
block_count = _block_count(fsize)
|
309
311
|
progress_data = ProgressData.new(key)
|
310
312
|
checksums = progress_data.get_checksums
|
@@ -322,7 +324,7 @@ module Qiniu
|
|
322
324
|
code, data = _resumable_put(uptoken, fh, checksums, progresses, block_notifier, chunk_notifier)
|
323
325
|
if Utils.is_response_ok?(code)
|
324
326
|
entry_uri = bucket + ':' + key
|
325
|
-
code, data = _mkfile(uptoken, entry_uri, fsize, checksums, mime_type, custom_meta, customer, callback_params)
|
327
|
+
code, data = _mkfile(uptoken, entry_uri, fsize, checksums, mime_type, custom_meta, customer, callback_params, rotate)
|
326
328
|
end
|
327
329
|
if Utils.is_response_ok?(code)
|
328
330
|
Utils.debug "File #{fh.path} {size: #{fsize}} successfully uploaded."
|
data/lib/qiniu/rs/version.rb
CHANGED
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.2.
|
4
|
+
version: 3.2.1
|
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-11-
|
12
|
+
date: 2012-11-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- LICENSE
|
139
139
|
- README.md
|
140
140
|
- Rakefile
|
141
|
+
- docs/NEWS.md
|
141
142
|
- docs/README.md
|
142
143
|
- lib/qiniu-rs.rb
|
143
144
|
- lib/qiniu/rs.rb
|
@@ -185,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
186
|
version: '0'
|
186
187
|
segments:
|
187
188
|
- 0
|
188
|
-
hash: -
|
189
|
+
hash: -726479024348899519
|
189
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
191
|
none: false
|
191
192
|
requirements:
|
@@ -194,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
195
|
version: '0'
|
195
196
|
segments:
|
196
197
|
- 0
|
197
|
-
hash: -
|
198
|
+
hash: -726479024348899519
|
198
199
|
requirements: []
|
199
200
|
rubyforge_project:
|
200
201
|
rubygems_version: 1.8.24
|