aliyun-sdk 0.3.5 → 0.3.6
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/CHANGELOG.md +7 -0
- data/README.md +10 -6
- data/lib/aliyun/oss/http.rb +28 -16
- data/lib/aliyun/version.rb +1 -1
- data/spec/aliyun/oss/client/bucket_spec.rb +1 -1
- data/spec/aliyun/oss/client/client_spec.rb +49 -0
- data/tests/config.rb +15 -0
- data/tests/test_content_encoding.rb +5 -10
- data/tests/test_content_type.rb +3 -8
- data/tests/test_custom_headers.rb +3 -8
- data/tests/test_encoding.rb +4 -8
- data/tests/test_large_file.rb +4 -8
- data/tests/test_multipart.rb +7 -15
- data/tests/test_object_acl.rb +3 -8
- data/tests/test_object_key.rb +4 -8
- data/tests/test_resumable.rb +7 -8
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adaf526c24ef420d2ee095742e60eb898656a67f
|
4
|
+
data.tar.gz: 9a3827d7efe46ebce561983a42cad93d56036dc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac6518e978b92b880614513e46ee00e34f5224c497cb9522e4419e49f01d71ea077b61d9cfda680f18fde9dd8c52871e59d8b06c5b4bb2c5d61b93c408eecdd9
|
7
|
+
data.tar.gz: 8cfc5141a37ab81d18b9e26dba0046c2cf7eda11501b5b25313e85d17847b0f5f4fc288d06ddec21d6d7722f212a7e88d150916cc0a1b45104db84decfcce516
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Aliyun OSS SDK for Ruby
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/aliyun-sdk)
|
3
4
|
[](https://travis-ci.org/aliyun/aliyun-oss-ruby-sdk)
|
4
5
|
[](https://coveralls.io/github/aliyun/aliyun-oss-ruby-sdk?branch=master)
|
5
6
|
|
@@ -325,6 +326,7 @@ Multipart的功能,可以在上传/下载时将大文件进行分片传输。A
|
|
325
326
|
puts obj.metas
|
326
327
|
|
327
328
|
关于meta信息有以下几点需要注意:
|
329
|
+
|
328
330
|
1. meta信息的key和value都只能是简单的ASCII非换行字符,并且总的大小不能超过8KB。
|
329
331
|
2. Copy object时默认将拷贝源object的meta信息,如果用户不希望这么做,需要
|
330
332
|
显式地将`:meta_directive`设置成{Aliyun::OSS::MetaDirective::REPLACE}
|
@@ -395,14 +397,16 @@ SDK的examples/目录下有一些展示SDK功能的示例程序,用户稍加
|
|
395
397
|
|
396
398
|
## 运行测试
|
397
399
|
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
rspec
|
400
|
+
```bash
|
401
|
+
bundle exec rake spec
|
402
402
|
|
403
|
-
|
403
|
+
export RUBY_SDK_OSS_ENDPOINT=endpoint
|
404
|
+
export RUBY_SDK_OSS_ID=AccessKeyId
|
405
|
+
export RUBY_SDK_OSS_KEY=AccessKeySecret
|
406
|
+
export RUBY_SDK_OSS_BUCKET=bucket-name
|
404
407
|
|
405
|
-
|
408
|
+
bundle exec rake test
|
409
|
+
```
|
406
410
|
|
407
411
|
## 更多
|
408
412
|
|
data/lib/aliyun/oss/http.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require 'rest-client'
|
4
|
+
require 'resolv'
|
4
5
|
require 'fiber'
|
5
6
|
|
6
7
|
module Aliyun
|
@@ -138,21 +139,22 @@ module Aliyun
|
|
138
139
|
end
|
139
140
|
|
140
141
|
def get_request_url(bucket, object)
|
141
|
-
url =
|
142
|
-
url
|
143
|
-
url
|
144
|
-
url
|
145
|
-
url
|
146
|
-
|
147
|
-
|
142
|
+
url = @config.endpoint.dup
|
143
|
+
isIP = !!(url.host =~ Resolv::IPv4::Regex)
|
144
|
+
url.host = "#{bucket}." + url.host if bucket && !@config.cname && !isIP
|
145
|
+
url.path = '/'
|
146
|
+
url.path << "#{bucket}/" if bucket && isIP
|
147
|
+
url.path << "#{CGI.escape(object)}" if object
|
148
|
+
|
149
|
+
url.to_s
|
148
150
|
end
|
149
151
|
|
150
152
|
def get_resource_path(bucket, object)
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
153
|
+
res = '/'
|
154
|
+
res << "#{bucket}/" if bucket
|
155
|
+
res << "#{object}" if object
|
156
|
+
|
157
|
+
res
|
156
158
|
end
|
157
159
|
|
158
160
|
# Handle Net::HTTPRespoonse
|
@@ -170,14 +172,24 @@ module Aliyun
|
|
170
172
|
elsif encoding == 'deflate'
|
171
173
|
begin
|
172
174
|
stream = Zlib::Inflate.new
|
173
|
-
|
174
|
-
|
175
|
+
# 1.9.x doesn't support streaming inflate
|
176
|
+
if RUBY_VERSION < '2.0.0'
|
177
|
+
yield stream.inflate(r.read_body)
|
178
|
+
else
|
179
|
+
r.read_body { |chunk| stream << chunk }
|
180
|
+
stream.finish { |chunk| yield chunk }
|
181
|
+
end
|
175
182
|
rescue Zlib::DataError
|
176
183
|
# No luck with Zlib decompression. Let's try with raw deflate,
|
177
184
|
# like some broken web servers do.
|
178
185
|
stream = Zlib::Inflate.new(-Zlib::MAX_WBITS)
|
179
|
-
|
180
|
-
|
186
|
+
# 1.9.x doesn't support streaming inflate
|
187
|
+
if RUBY_VERSION < '2.0.0'
|
188
|
+
yield stream.inflate(r.read_body)
|
189
|
+
else
|
190
|
+
r.read_body { |chunk| stream << chunk }
|
191
|
+
stream.finish { |chunk| yield chunk }
|
192
|
+
end
|
181
193
|
end
|
182
194
|
else
|
183
195
|
r.read_body { |chunk| yield chunk }
|
data/lib/aliyun/version.rb
CHANGED
@@ -158,7 +158,7 @@ module Aliyun
|
|
158
158
|
|
159
159
|
it "should get bucket url" do
|
160
160
|
expect(@bucket.bucket_url)
|
161
|
-
.to eq('http://rubysdk-bucket.oss-cn-hangzhou.aliyuncs.com')
|
161
|
+
.to eq('http://rubysdk-bucket.oss-cn-hangzhou.aliyuncs.com/')
|
162
162
|
end
|
163
163
|
|
164
164
|
it "should get access key id" do
|
@@ -24,6 +24,55 @@ module Aliyun
|
|
24
24
|
expect(config.sts_token).to eq('sts-token')
|
25
25
|
end
|
26
26
|
|
27
|
+
it "should work with CNAME endpoint" do
|
28
|
+
endpoint = 'rockuw.com'
|
29
|
+
bucket = 'rubysdk-bucket'
|
30
|
+
object = 'rubysdk-object'
|
31
|
+
client = Client.new(
|
32
|
+
access_key_id: 'xxx',
|
33
|
+
access_key_secret: 'yyy',
|
34
|
+
endpoint: endpoint,
|
35
|
+
cname: true)
|
36
|
+
|
37
|
+
# TODO: ignore queries here
|
38
|
+
# bucket operations
|
39
|
+
stub_request(:get, endpoint)
|
40
|
+
.with(:query => {'encoding-type' => 'url'})
|
41
|
+
client.get_bucket(bucket).list_objects.take(1)
|
42
|
+
expect(WebMock)
|
43
|
+
.to have_requested(:get, endpoint)
|
44
|
+
.with(:query => {'encoding-type' => 'url'})
|
45
|
+
|
46
|
+
# object operations
|
47
|
+
stub_request(:get, "#{endpoint}/#{object}")
|
48
|
+
client.get_bucket(bucket).get_object(object) {}
|
49
|
+
expect(WebMock).to have_requested(:get, "#{endpoint}/#{object}")
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should work with IP endpoint" do
|
53
|
+
endpoint = 'http://127.0.0.1:3000'
|
54
|
+
bucket = 'rubysdk-bucket'
|
55
|
+
object = 'rubysdk-object'
|
56
|
+
client = Client.new(
|
57
|
+
access_key_id: 'xxx',
|
58
|
+
access_key_secret: 'yyy',
|
59
|
+
endpoint: endpoint)
|
60
|
+
|
61
|
+
# TODO: ignore queries here
|
62
|
+
# bucket operations
|
63
|
+
stub_request(:get, "#{endpoint}/#{bucket}/")
|
64
|
+
.with(:query => {'encoding-type' => 'url'})
|
65
|
+
client.get_bucket(bucket).list_objects.take(1)
|
66
|
+
expect(WebMock)
|
67
|
+
.to have_requested(:get, "#{endpoint}/#{bucket}/")
|
68
|
+
.with(:query => {'encoding-type' => 'url'})
|
69
|
+
|
70
|
+
# object operations
|
71
|
+
stub_request(:get, "#{endpoint}/#{bucket}/#{object}")
|
72
|
+
client.get_bucket(bucket).get_object(object) {}
|
73
|
+
expect(WebMock).to have_requested(:get, "#{endpoint}/#{bucket}/#{object}")
|
74
|
+
end
|
75
|
+
|
27
76
|
it "should not set Authorization with anonymous client" do
|
28
77
|
endpoint = 'oss-cn-hangzhou.aliyuncs.com'
|
29
78
|
bucket = 'rubysdk-bucket'
|
data/tests/config.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
class TestConf
|
2
|
+
class << self
|
3
|
+
def creds
|
4
|
+
{
|
5
|
+
access_key_id: ENV['RUBY_SDK_OSS_ID'],
|
6
|
+
access_key_secret: ENV['RUBY_SDK_OSS_KEY'],
|
7
|
+
endpoint: ENV['RUBY_SDK_OSS_ENDPOINT']
|
8
|
+
}
|
9
|
+
end
|
10
|
+
|
11
|
+
def bucket
|
12
|
+
ENV['RUBY_SDK_OSS_BUCKET']
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -3,18 +3,13 @@ require 'yaml'
|
|
3
3
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
4
4
|
require 'aliyun/oss'
|
5
5
|
require 'zlib'
|
6
|
+
require_relative 'config'
|
6
7
|
|
7
8
|
class TestContentEncoding < Minitest::Test
|
8
9
|
def setup
|
9
10
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
10
|
-
|
11
|
-
|
12
|
-
client = Aliyun::OSS::Client.new(
|
13
|
-
:endpoint => conf['endpoint'],
|
14
|
-
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['access_key_id'],
|
16
|
-
:access_key_secret => conf['access_key_secret'])
|
17
|
-
@bucket = client.get_bucket(conf['bucket'])
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
18
13
|
|
19
14
|
@prefix = "tests/content_encoding/"
|
20
15
|
end
|
@@ -33,7 +28,7 @@ class TestContentEncoding < Minitest::Test
|
|
33
28
|
key, file: '/tmp/x', content_type: 'text/plain')
|
34
29
|
|
35
30
|
@bucket.get_object(
|
36
|
-
key, file: '/tmp/y', headers: {'accept-encoding'
|
31
|
+
key, file: '/tmp/y', headers: {'accept-encoding' => 'gzip'})
|
37
32
|
|
38
33
|
assert File.exist?('/tmp/y')
|
39
34
|
diff = `diff /tmp/x /tmp/y`
|
@@ -50,7 +45,7 @@ class TestContentEncoding < Minitest::Test
|
|
50
45
|
key, file: '/tmp/x', content_type: 'text/plain')
|
51
46
|
|
52
47
|
@bucket.get_object(
|
53
|
-
key, file: '/tmp/y', headers: {'accept-encoding'
|
48
|
+
key, file: '/tmp/y', headers: {'accept-encoding' => 'deflate'})
|
54
49
|
|
55
50
|
assert File.exist?('/tmp/y')
|
56
51
|
diff = `diff /tmp/x /tmp/y`
|
data/tests/test_content_type.rb
CHANGED
@@ -2,18 +2,13 @@ require 'minitest/autorun'
|
|
2
2
|
require 'yaml'
|
3
3
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
4
4
|
require 'aliyun/oss'
|
5
|
+
require_relative 'config'
|
5
6
|
|
6
7
|
class TestContentType < Minitest::Test
|
7
8
|
def setup
|
8
9
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
9
|
-
|
10
|
-
|
11
|
-
client = Aliyun::OSS::Client.new(
|
12
|
-
:endpoint => conf['endpoint'],
|
13
|
-
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['access_key_id'],
|
15
|
-
:access_key_secret => conf['access_key_secret'])
|
16
|
-
@bucket = client.get_bucket(conf['bucket'])
|
10
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
11
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
17
12
|
|
18
13
|
@types = {
|
19
14
|
"html" => "text/html",
|
@@ -3,18 +3,13 @@ require 'yaml'
|
|
3
3
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
4
4
|
require 'aliyun/oss'
|
5
5
|
require 'zlib'
|
6
|
+
require_relative 'config'
|
6
7
|
|
7
8
|
class TestCustomHeaders < Minitest::Test
|
8
9
|
def setup
|
9
10
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
10
|
-
|
11
|
-
|
12
|
-
client = Aliyun::OSS::Client.new(
|
13
|
-
:endpoint => conf['endpoint'],
|
14
|
-
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['access_key_id'],
|
16
|
-
:access_key_secret => conf['access_key_secret'])
|
17
|
-
@bucket = client.get_bucket(conf['bucket'])
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
18
13
|
|
19
14
|
@prefix = "tests/custom_headers/"
|
20
15
|
end
|
data/tests/test_encoding.rb
CHANGED
@@ -3,18 +3,14 @@ require 'minitest/autorun'
|
|
3
3
|
require 'yaml'
|
4
4
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
5
5
|
require 'aliyun/oss'
|
6
|
+
require_relative 'config'
|
6
7
|
|
7
8
|
class TestEncoding < Minitest::Test
|
8
9
|
def setup
|
9
10
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:endpoint => conf['endpoint'],
|
14
|
-
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['access_key_id'],
|
16
|
-
:access_key_secret => conf['access_key_secret'])
|
17
|
-
@bucket = client.get_bucket(conf['bucket'])
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
13
|
+
|
18
14
|
@prefix = 'tests/encoding/'
|
19
15
|
end
|
20
16
|
|
data/tests/test_large_file.rb
CHANGED
@@ -4,17 +4,13 @@ require 'benchmark'
|
|
4
4
|
require 'yaml'
|
5
5
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
6
6
|
require 'aliyun/oss'
|
7
|
+
require_relative 'config'
|
7
8
|
|
8
9
|
class TestLargeFile < Minitest::Test
|
9
10
|
def setup
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:endpoint => conf['endpoint'],
|
14
|
-
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['access_key_id'],
|
16
|
-
:access_key_secret => conf['access_key_secret'])
|
17
|
-
@bucket = client.get_bucket(conf['bucket'])
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
13
|
+
|
18
14
|
@prefix = 'tests/large_file/'
|
19
15
|
end
|
20
16
|
|
data/tests/test_multipart.rb
CHANGED
@@ -3,21 +3,16 @@ require 'minitest/autorun'
|
|
3
3
|
require 'yaml'
|
4
4
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
5
5
|
require 'aliyun/oss'
|
6
|
+
require_relative 'config'
|
6
7
|
|
7
8
|
class TestMultipart < Minitest::Test
|
8
9
|
def setup
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
access_key_secret: conf['access_key_secret'],
|
16
|
-
}
|
17
|
-
client = Aliyun::OSS::Client.new(opts)
|
18
|
-
@bucket_name = conf['bucket']
|
19
|
-
@bucket = client.get_bucket(@bucket_name)
|
20
|
-
@protocol = Aliyun::OSS::Protocol.new(Aliyun::OSS::Config.new(opts))
|
10
|
+
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket_name = TestConf.bucket
|
13
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
14
|
+
|
15
|
+
@protocol = Aliyun::OSS::Protocol.new(Aliyun::OSS::Config.new(TestConf.creds))
|
21
16
|
@prefix = 'tests/multipart/'
|
22
17
|
end
|
23
18
|
|
@@ -99,7 +94,4 @@ class TestMultipart < Minitest::Test
|
|
99
94
|
id_marker: bar_ids[4], key_marker: get_key("bar")).to_a
|
100
95
|
assert_equal foo_ids, after_5.map(&:id)
|
101
96
|
end
|
102
|
-
|
103
|
-
def test_prefix
|
104
|
-
end
|
105
97
|
end
|
data/tests/test_object_acl.rb
CHANGED
@@ -2,18 +2,13 @@ require 'minitest/autorun'
|
|
2
2
|
require 'yaml'
|
3
3
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
4
4
|
require 'aliyun/oss'
|
5
|
+
require_relative 'config'
|
5
6
|
|
6
7
|
class TestObjectACL < Minitest::Test
|
7
8
|
def setup
|
8
9
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
9
|
-
|
10
|
-
|
11
|
-
client = Aliyun::OSS::Client.new(
|
12
|
-
:endpoint => conf['endpoint'],
|
13
|
-
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['access_key_id'],
|
15
|
-
:access_key_secret => conf['access_key_secret'])
|
16
|
-
@bucket = client.get_bucket(conf['bucket'])
|
10
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
11
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
17
12
|
|
18
13
|
@prefix = "tests/object_acl/"
|
19
14
|
end
|
data/tests/test_object_key.rb
CHANGED
@@ -3,18 +3,14 @@ require 'minitest/autorun'
|
|
3
3
|
require 'yaml'
|
4
4
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
5
5
|
require 'aliyun/oss'
|
6
|
+
require_relative 'config'
|
6
7
|
|
7
8
|
class TestObjectKey < Minitest::Test
|
8
9
|
def setup
|
9
10
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:endpoint => conf['endpoint'],
|
14
|
-
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['access_key_id'],
|
16
|
-
:access_key_secret => conf['access_key_secret'])
|
17
|
-
@bucket = client.get_bucket(conf['bucket'])
|
11
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
12
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
13
|
+
|
18
14
|
@prefix = 'tests/object_key/'
|
19
15
|
@keys = {
|
20
16
|
simple: 'simple_key',
|
data/tests/test_resumable.rb
CHANGED
@@ -2,18 +2,14 @@ require 'minitest/autorun'
|
|
2
2
|
require 'yaml'
|
3
3
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
4
4
|
require 'aliyun/oss'
|
5
|
+
require_relative 'config'
|
5
6
|
|
6
7
|
class TestResumable < Minitest::Test
|
7
8
|
def setup
|
8
9
|
Aliyun::Common::Logging.set_log_level(Logger::DEBUG)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
:endpoint => conf['endpoint'],
|
13
|
-
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['access_key_id'],
|
15
|
-
:access_key_secret => conf['access_key_secret'])
|
16
|
-
@bucket = client.get_bucket(conf['bucket'])
|
10
|
+
client = Aliyun::OSS::Client.new(TestConf.creds)
|
11
|
+
@bucket = client.get_bucket(TestConf.bucket)
|
12
|
+
|
17
13
|
@prefix = 'tests/resumable/'
|
18
14
|
end
|
19
15
|
|
@@ -32,6 +28,9 @@ class TestResumable < Minitest::Test
|
|
32
28
|
(10 * 1024).times { f.write(random_string(1024)) }
|
33
29
|
end
|
34
30
|
|
31
|
+
# clear checkpoints
|
32
|
+
`rm -rf /tmp/x.cpt && rm -rf /tmp/y.cpt`
|
33
|
+
|
35
34
|
@bucket.resumable_upload(key, '/tmp/x', :part_size => 100 * 1024)
|
36
35
|
@bucket.resumable_download(key, '/tmp/y', :part_size => 100 * 1024)
|
37
36
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aliyun-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tianlong Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- spec/aliyun/oss/util_spec.rb
|
180
180
|
- spec/aliyun/sts/client_spec.rb
|
181
181
|
- spec/aliyun/sts/util_spec.rb
|
182
|
+
- tests/config.rb
|
182
183
|
- tests/test_content_encoding.rb
|
183
184
|
- tests/test_content_type.rb
|
184
185
|
- tests/test_custom_headers.rb
|
@@ -225,6 +226,7 @@ test_files:
|
|
225
226
|
- spec/aliyun/oss/util_spec.rb
|
226
227
|
- spec/aliyun/sts/client_spec.rb
|
227
228
|
- spec/aliyun/sts/util_spec.rb
|
229
|
+
- tests/config.rb
|
228
230
|
- tests/test_content_encoding.rb
|
229
231
|
- tests/test_content_type.rb
|
230
232
|
- tests/test_custom_headers.rb
|