qingstor-sdk 2.1.1 → 2.2.0
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.
- checksums.yaml +4 -4
- data/README.md +17 -1
- data/lib/qingstor/sdk/request/preprocessor.rb +16 -3
- data/lib/qingstor/sdk/request/signer.rb +2 -7
- data/lib/qingstor/sdk/service/bucket.rb +51 -0
- data/lib/qingstor/sdk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c017ab0377c9dbe06078e86770f14657f3a3c119
|
4
|
+
data.tar.gz: a94c9695d19a24647392a92ee09ea5cd0da7e831
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: beb1bf011b11f37dc244d3840ff7fba7ea0130ae3177d167da5e45368c8d5636e68d27a5da4fd1b653a5cf0e25b45ecfd99186135f0d2967f4da4d97544487ce
|
7
|
+
data.tar.gz: 8a4627ef7a91cd0fee08aee91d9769e9fa87ccd34ef4fe0b23161137168f79b8cdfce92e3b2222060fbdda2d7ccb28ca1af4e433fde488fec029d4052c125bce
|
data/README.md
CHANGED
@@ -169,29 +169,44 @@ log_level: 'warn'
|
|
169
169
|
## Change Log
|
170
170
|
All notable changes to QingStor SDK for Ruby will be documented here.
|
171
171
|
|
172
|
-
|
172
|
+
## [v2.2.0] - 2017-02-28
|
173
|
+
|
174
|
+
### Added
|
175
|
+
|
176
|
+
- Add ListMultipartUploads API.
|
177
|
+
|
178
|
+
### Fixed
|
179
|
+
|
180
|
+
- Fix request builder & signer.
|
181
|
+
|
182
|
+
### [v2.1.1] - 2017-01-16
|
173
183
|
|
174
184
|
#### Fixed
|
185
|
+
|
175
186
|
- Fix signer bug.
|
176
187
|
|
177
188
|
### [v2.1.0] - 2016-12-24
|
178
189
|
|
179
190
|
#### Changed
|
191
|
+
|
180
192
|
- Fix signer bug.
|
181
193
|
- Add more parameters to sign.
|
182
194
|
|
183
195
|
#### Added
|
196
|
+
|
184
197
|
- Add request parameters for GET Object.
|
185
198
|
- Add IP address conditions for bucket policy.
|
186
199
|
|
187
200
|
### [v2.0.1] - 2016-12-16
|
188
201
|
|
189
202
|
#### Changed
|
203
|
+
|
190
204
|
- Improve the implementation of deleting multiple objects.
|
191
205
|
|
192
206
|
### v2.0.0 - 2016-12-14
|
193
207
|
|
194
208
|
#### Added
|
209
|
+
|
195
210
|
- QingStor SDK for the Ruby programming language.
|
196
211
|
|
197
212
|
## Reference Documentations
|
@@ -213,6 +228,7 @@ All notable changes to QingStor SDK for Ruby will be documented here.
|
|
213
228
|
The Apache License (Version 2.0, January 2004).
|
214
229
|
|
215
230
|
[compatible]: https://github.com/yunify/qingstor-sdk-ruby/tree/compatible
|
231
|
+
[v2.2.0]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.1.2...v2.2.0
|
216
232
|
[v2.1.1]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.1.0...v2.1.1
|
217
233
|
[v2.1.0]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.0.1...v2.1.0
|
218
234
|
[v2.0.1]: https://github.com/yunify/qingstor-sdk-ruby/compare/v2.0.0...v2.0.1
|
@@ -51,7 +51,7 @@ module QingStor
|
|
51
51
|
def self.request_uri(input)
|
52
52
|
unless input[:properties].nil?
|
53
53
|
input[:properties].each do |k, v|
|
54
|
-
input[:request_uri].gsub! "<#{k}>", v.to_s
|
54
|
+
input[:request_uri].gsub! "<#{k}>", (escape v.to_s)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
input[:request_uri]
|
@@ -99,14 +99,19 @@ module QingStor
|
|
99
99
|
input[:request_headers][:'Content-MD5'] = Base64.encode64(Digest::MD5.digest(input[:request_body])).strip
|
100
100
|
end
|
101
101
|
|
102
|
+
input[:request_headers].map { |k, v|
|
103
|
+
unless v.to_s.ascii_only?
|
104
|
+
input[:request_headers][k] = escape v.to_s
|
105
|
+
end
|
106
|
+
}
|
107
|
+
|
102
108
|
input[:request_headers]
|
103
109
|
end
|
104
110
|
|
105
111
|
def self.request_params(input)
|
106
112
|
unless input[:request_params].nil?
|
107
113
|
input[:request_params].map do |k, v|
|
108
|
-
input[:request_params][k] =
|
109
|
-
input[:request_params][k].gsub! '+', '%20'
|
114
|
+
input[:request_params][k] = escape v.to_s
|
110
115
|
end
|
111
116
|
end
|
112
117
|
input[:request_params]
|
@@ -125,6 +130,14 @@ module QingStor
|
|
125
130
|
end
|
126
131
|
object
|
127
132
|
end
|
133
|
+
|
134
|
+
def self.escape(origin)
|
135
|
+
origin = CGI.escape origin
|
136
|
+
origin.gsub! '%2F', '/'
|
137
|
+
origin.gsub! '%3D', '='
|
138
|
+
origin.gsub! '+', '%20'
|
139
|
+
origin
|
140
|
+
end
|
128
141
|
end
|
129
142
|
end
|
130
143
|
end
|
@@ -87,19 +87,14 @@ module QingStor
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def self.canonicalized_resource(input)
|
90
|
-
path = CGI.escape input[:request_uri]
|
91
|
-
path.gsub! '%3F', '?'
|
92
|
-
path.gsub! '%2F', '/'
|
93
|
-
path.gsub! '+', '%20'
|
94
|
-
|
95
90
|
params = input[:request_params].keys.sort.map { |k|
|
96
91
|
if sub_resource? k.to_s
|
97
92
|
v = input[:request_params][k].to_s.strip
|
98
93
|
!v.nil? && v != '' ? "#{k}=#{CGI.unescape v}" : k
|
99
94
|
end
|
100
95
|
}.compact.join '&'
|
101
|
-
params =
|
102
|
-
"#{
|
96
|
+
params = input[:request_uri].include?('?') ? "&#{params}" : "?#{params}" if params != ''
|
97
|
+
"#{input[:request_uri]}#{params}"
|
103
98
|
end
|
104
99
|
|
105
100
|
def self.sub_resource?(key)
|
@@ -456,6 +456,57 @@ module QingStor
|
|
456
456
|
|
457
457
|
public
|
458
458
|
|
459
|
+
# list_multipart_uploads: List multipart uploads in the bucket.
|
460
|
+
# Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/list_multipart_uploads.html
|
461
|
+
def list_multipart_uploads(delimiter: '',
|
462
|
+
limit: nil,
|
463
|
+
marker: '',
|
464
|
+
prefix: '')
|
465
|
+
request = list_multipart_uploads_request delimiter: delimiter,
|
466
|
+
limit: limit,
|
467
|
+
marker: marker,
|
468
|
+
prefix: prefix
|
469
|
+
request.send
|
470
|
+
end
|
471
|
+
|
472
|
+
def list_multipart_uploads_request(delimiter: '',
|
473
|
+
limit: nil,
|
474
|
+
marker: '',
|
475
|
+
prefix: '')
|
476
|
+
input = {
|
477
|
+
config: config,
|
478
|
+
properties: properties,
|
479
|
+
api_name: 'List Multipart Uploads',
|
480
|
+
request_method: 'GET',
|
481
|
+
request_uri: '/<bucket-name>?uploads',
|
482
|
+
request_params: {
|
483
|
+
'delimiter' => delimiter,
|
484
|
+
'limit' => limit,
|
485
|
+
'marker' => marker,
|
486
|
+
'prefix' => prefix,
|
487
|
+
},
|
488
|
+
request_headers: {
|
489
|
+
},
|
490
|
+
request_elements: {
|
491
|
+
},
|
492
|
+
request_body: nil,
|
493
|
+
status_code: [
|
494
|
+
200, # OK
|
495
|
+
],
|
496
|
+
}
|
497
|
+
|
498
|
+
list_multipart_uploads_input_validate input
|
499
|
+
Request.new input
|
500
|
+
end
|
501
|
+
|
502
|
+
private
|
503
|
+
|
504
|
+
def list_multipart_uploads_input_validate(input)
|
505
|
+
input.deep_stringify_keys!
|
506
|
+
end
|
507
|
+
|
508
|
+
public
|
509
|
+
|
459
510
|
# list_objects: Retrieve the object list in a bucket.
|
460
511
|
# Documentation URL: https://docs.qingcloud.com/qingstor/api/bucket/get.html
|
461
512
|
def list_objects(delimiter: '',
|
data/lib/qingstor/sdk/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qingstor-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yunify SDK Group
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|