aliyun-sdk 0.1.7 → 0.1.8
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 +6 -0
- data/README.md +5 -5
- data/examples/aliyun/oss/bucket.rb +2 -2
- data/examples/aliyun/oss/object.rb +2 -2
- data/examples/aliyun/oss/resumable_download.rb +2 -2
- data/examples/aliyun/oss/resumable_upload.rb +2 -2
- data/examples/aliyun/oss/streaming.rb +2 -2
- data/lib/aliyun/oss/bucket.rb +2 -5
- data/lib/aliyun/oss/config.rb +3 -0
- data/lib/aliyun/oss/http.rb +12 -8
- data/lib/aliyun/oss/version.rb +1 -1
- data/spec/aliyun/oss/client/client_spec.rb +2 -2
- data/spec/aliyun/oss/http_spec.rb +43 -4
- data/tests/test_content_type.rb +2 -2
- data/tests/test_encoding.rb +81 -0
- data/tests/test_large_file.rb +2 -2
- data/tests/test_multipart.rb +3 -3
- data/tests/test_object_key.rb +2 -2
- data/tests/test_resumable.rb +2 -2
- metadata +21 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5464cc7eae38bc5a03989a659ecebe5ad29b20c5
|
4
|
+
data.tar.gz: 7b700d86e7985b53227aee212ed097d9d68f9c83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a98134dfb618c8359e66d8914918d05fc1b20efe2589cf3d9f094b001a0aab38c3c0292465f6457ae07cc2941c65843ed960ad88e83bd18c9eeabfbbb6c35c2
|
7
|
+
data.tar.gz: 0c8d4c5b7aa671664c2f5f433d44c7307f2ad4b38387c839f2ca6b1d27c857fc106e6c2c03cf1d8be2ce7200a2de10c338f22665ac3e5e547729f73df0f81a71
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -149,7 +149,7 @@ Object的common prefix,包含在`list_objects`的结果中。
|
|
149
149
|
|
150
150
|
objs = bucket.list_objects(:prefix => '/foo/', :delimiter => '/')
|
151
151
|
objs.each do |i|
|
152
|
-
if i.is_a?(Object) # a object
|
152
|
+
if i.is_a?(Aliyun::OSS::Object) # a object
|
153
153
|
puts "object: #{i.key}"
|
154
154
|
else
|
155
155
|
puts "common prefix: #{i}"
|
@@ -330,13 +330,13 @@ Bucket的权限。
|
|
330
330
|
|
331
331
|
SDK的examples/目录下有一些展示SDK功能的示例程序,用户稍加配置就可以直
|
332
332
|
接运行。examples需要的权限信息和bucket信息从用户`HOME`目录下的配置文件
|
333
|
-
`~/.oss.yml
|
333
|
+
`~/.oss.yml`中读取,其中应该包含以下字段(**注意冒号后面需要有一个空格**):
|
334
334
|
|
335
335
|
endpoint: oss-cn-hangzhou.aliyuncs.com
|
336
336
|
cname: false
|
337
|
-
|
338
|
-
|
339
|
-
bucket: BUCKET NAME
|
337
|
+
access_key_id: <ACCESS KEY ID>
|
338
|
+
access_key_secret: <ACCESS KEY SECRET>
|
339
|
+
bucket: <BUCKET NAME>
|
340
340
|
|
341
341
|
用户需要创建(如果不存在)或者修改其中的内容,然后运行:
|
342
342
|
|
@@ -11,8 +11,8 @@ conf = YAML.load(File.read(File.expand_path(conf_file)))
|
|
11
11
|
client = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret'])
|
16
16
|
bucket = client.get_bucket(conf['bucket'])
|
17
17
|
|
18
18
|
# 辅助打印函数
|
@@ -11,8 +11,8 @@ conf = YAML.load(File.read(File.expand_path(conf_file)))
|
|
11
11
|
bucket = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret']).get_bucket(conf['bucket'])
|
16
16
|
|
17
17
|
# 辅助打印函数
|
18
18
|
def demo(msg)
|
@@ -11,8 +11,8 @@ conf = YAML.load(File.read(File.expand_path(conf_file)))
|
|
11
11
|
bucket = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret']).get_bucket(conf['bucket'])
|
16
16
|
|
17
17
|
# 辅助打印函数
|
18
18
|
def demo(msg)
|
@@ -11,8 +11,8 @@ conf = YAML.load(File.read(File.expand_path(conf_file)))
|
|
11
11
|
bucket = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret']).get_bucket(conf['bucket'])
|
16
16
|
|
17
17
|
# 辅助打印函数
|
18
18
|
def demo(msg)
|
@@ -29,8 +29,8 @@ conf = YAML.load(File.read(File.expand_path(conf_file)))
|
|
29
29
|
bucket = Aliyun::OSS::Client.new(
|
30
30
|
:endpoint => conf['endpoint'],
|
31
31
|
:cname => conf['cname'],
|
32
|
-
:access_key_id => conf['
|
33
|
-
:access_key_secret => conf['
|
32
|
+
:access_key_id => conf['access_key_id'],
|
33
|
+
:access_key_secret => conf['access_key_secret']).get_bucket(conf['bucket'])
|
34
34
|
|
35
35
|
# 辅助打印函数
|
36
36
|
def demo(msg)
|
data/lib/aliyun/oss/bucket.rb
CHANGED
@@ -178,8 +178,8 @@ module Aliyun
|
|
178
178
|
# @option opts [Hash] :metas 设置object的meta,这是一些用户自定
|
179
179
|
# 义的属性,它们会和object一起存储,在{#get_object}的时候会
|
180
180
|
# 返回这些meta。属性的key不区分大小写。例如:{ 'year' => '2015' }
|
181
|
-
# @yield [HTTP::StreamWriter]
|
182
|
-
#
|
181
|
+
# @yield [HTTP::StreamWriter] 如果调用的时候传递了block,则写入
|
182
|
+
# 到object的数据由block指定
|
183
183
|
# @example 流式上传数据
|
184
184
|
# put_object('x'){ |stream| 100.times { |i| stream << i.to_s } }
|
185
185
|
# put_object('x'){ |stream| stream << get_data }
|
@@ -188,9 +188,6 @@ module Aliyun
|
|
188
188
|
# @example 指定Content-Type和metas
|
189
189
|
# put_object('x', :file => '/tmp/x', :content_type => 'text/html',
|
190
190
|
# :metas => {'year' => '2015', 'people' => 'mary'})
|
191
|
-
# @note 采用streaming的方式时,提供的数据必须是有结束标记的数据。
|
192
|
-
# 因为put_object会不断地从StreamWriter中读取数据上传到OSS,直到
|
193
|
-
# 它读到的数据为nil停止。
|
194
191
|
# @note 如果opts中指定了:file,则block会被忽略
|
195
192
|
def put_object(key, opts = {}, &block)
|
196
193
|
args = opts.dup
|
data/lib/aliyun/oss/config.rb
CHANGED
data/lib/aliyun/oss/http.rb
CHANGED
@@ -41,18 +41,22 @@ module Aliyun
|
|
41
41
|
#
|
42
42
|
class StreamWriter
|
43
43
|
def initialize
|
44
|
-
@
|
44
|
+
@buffer = ""
|
45
45
|
@producer = Fiber.new { yield self if block_given? }
|
46
46
|
@producer.resume
|
47
47
|
end
|
48
48
|
|
49
|
-
# FIXME: it may return more than bytes, not sure if that's a problem
|
50
49
|
def read(bytes = nil, outbuf = nil)
|
51
50
|
ret = ""
|
52
51
|
loop do
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
if bytes
|
53
|
+
ret << @buffer.slice!(0, bytes)
|
54
|
+
break if ret.size >= bytes
|
55
|
+
else
|
56
|
+
ret << @buffer
|
57
|
+
@buffer.clear
|
58
|
+
end
|
59
|
+
|
56
60
|
if @producer.alive?
|
57
61
|
@producer.resume
|
58
62
|
else
|
@@ -76,7 +80,7 @@ module Aliyun
|
|
76
80
|
end
|
77
81
|
|
78
82
|
def write(chunk)
|
79
|
-
@
|
83
|
+
@buffer << chunk.to_s.force_encoding(Encoding::ASCII_8BIT)
|
80
84
|
Fiber.yield
|
81
85
|
self
|
82
86
|
end
|
@@ -88,7 +92,7 @@ module Aliyun
|
|
88
92
|
end
|
89
93
|
|
90
94
|
def inspect
|
91
|
-
"@
|
95
|
+
"@buffer: " + @buffer[0, 32].inspect + "...#{@buffer.size} bytes"
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
@@ -275,7 +279,7 @@ module Aliyun
|
|
275
279
|
end
|
276
280
|
|
277
281
|
def get_user_agent
|
278
|
-
"aliyun-sdk-ruby/#{VERSION}"
|
282
|
+
"aliyun-sdk-ruby/#{VERSION} ruby-#{RUBY_VERSION}/#{RUBY_PLATFORM}"
|
279
283
|
end
|
280
284
|
|
281
285
|
end # HTTP
|
data/lib/aliyun/oss/version.rb
CHANGED
@@ -10,11 +10,11 @@ module Aliyun
|
|
10
10
|
describe Client do
|
11
11
|
|
12
12
|
context "construct" do
|
13
|
-
it "should setup endpoint and a/k"
|
13
|
+
it "should setup endpoint and a/k" do
|
14
14
|
endpoint = 'oss-cn-hangzhou.aliyuncs.com'
|
15
15
|
client = Client.new(
|
16
16
|
:endpoint => endpoint,
|
17
|
-
:access_key_id => 'xxx', :access_key_secret => 'yyy')
|
17
|
+
:access_key_id => 'xxx ', :access_key_secret => ' yyy ')
|
18
18
|
|
19
19
|
config = client.instance_variable_get('@config')
|
20
20
|
expect(config.endpoint.to_s).to eq("http://#{endpoint}")
|
@@ -10,14 +10,53 @@ module Aliyun
|
|
10
10
|
context HTTP::StreamWriter do
|
11
11
|
it "should read out chunks that are written" do
|
12
12
|
s = HTTP::StreamWriter.new do |sr|
|
13
|
-
|
13
|
+
100.times { sr << "x" }
|
14
14
|
end
|
15
15
|
|
16
|
-
10.times do
|
17
|
-
bytes, outbuf =
|
16
|
+
10.times do
|
17
|
+
bytes, outbuf = 10, ''
|
18
18
|
s.read(bytes, outbuf)
|
19
|
-
expect(outbuf).to eq("
|
19
|
+
expect(outbuf).to eq("x"*10)
|
20
20
|
end
|
21
|
+
|
22
|
+
outbuf = 'xxx'
|
23
|
+
r = s.read(10, outbuf)
|
24
|
+
expect(outbuf).to eq('')
|
25
|
+
expect(r).to be nil
|
26
|
+
|
27
|
+
r = s.read
|
28
|
+
expect(outbuf.empty?).to be true
|
29
|
+
expect(r).to eq('')
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should convert chunk to string" do
|
33
|
+
s = HTTP::StreamWriter.new do |sr|
|
34
|
+
sr << 100 << 200
|
35
|
+
end
|
36
|
+
|
37
|
+
r = s.read
|
38
|
+
expect(r).to eq("100200")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should encode string to bytes" do
|
42
|
+
s = HTTP::StreamWriter.new do |sr|
|
43
|
+
100.times { sr << "中" }
|
44
|
+
end
|
45
|
+
|
46
|
+
r = s.read(1)
|
47
|
+
expect(r).to eq('中'.force_encoding(Encoding::ASCII_8BIT)[0])
|
48
|
+
s.read(2)
|
49
|
+
r = s.read(3)
|
50
|
+
expect(r.force_encoding(Encoding::UTF_8)).to eq('中')
|
51
|
+
|
52
|
+
bytes = (100 - 2) * 3
|
53
|
+
outbuf = 'zzz'
|
54
|
+
r = s.read(bytes, outbuf)
|
55
|
+
expect(outbuf.size).to eq(bytes)
|
56
|
+
expect(r.size).to eq(bytes)
|
57
|
+
|
58
|
+
r = s.read
|
59
|
+
expect(r).to eq('')
|
21
60
|
end
|
22
61
|
end # StreamWriter
|
23
62
|
|
data/tests/test_content_type.rb
CHANGED
@@ -11,8 +11,8 @@ class TestContentType < Minitest::Test
|
|
11
11
|
client = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret'])
|
16
16
|
@bucket = client.get_bucket(conf['bucket'])
|
17
17
|
|
18
18
|
@types = {
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'yaml'
|
4
|
+
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
5
|
+
require 'aliyun/oss'
|
6
|
+
|
7
|
+
class TestEncoding < Minitest::Test
|
8
|
+
def setup
|
9
|
+
Aliyun::OSS::Logging.set_log_level(Logger::DEBUG)
|
10
|
+
conf_file = '~/.oss.yml'
|
11
|
+
conf = YAML.load(File.read(File.expand_path(conf_file)))
|
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'])
|
18
|
+
@prefix = 'tests/encoding/'
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_key(k)
|
22
|
+
@prefix + k
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_utf_8
|
26
|
+
key = get_key('utf-8')
|
27
|
+
@bucket.put_object(key) do |stream|
|
28
|
+
stream << '中国' << 'Ruby'
|
29
|
+
end
|
30
|
+
put = '中国Ruby'.force_encoding(Encoding::ASCII_8BIT)
|
31
|
+
got = ''
|
32
|
+
@bucket.get_object(key) { |c| got << c }
|
33
|
+
assert_equal put, got
|
34
|
+
|
35
|
+
File.open('/tmp/x', 'w') { |f| f.write('中国Ruby') }
|
36
|
+
@bucket.put_object(key, :file => '/tmp/x')
|
37
|
+
got = ''
|
38
|
+
@bucket.get_object(key) { |c| got << c }
|
39
|
+
assert_equal put, got
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_gbk
|
43
|
+
key = get_key('gbk')
|
44
|
+
@bucket.put_object(key) do |stream|
|
45
|
+
stream << '中国'.encode(Encoding::GBK) << 'Ruby'.encode(Encoding::GBK)
|
46
|
+
end
|
47
|
+
put = '中国Ruby'.encode(Encoding::GBK).force_encoding(Encoding::ASCII_8BIT)
|
48
|
+
got = ''
|
49
|
+
@bucket.get_object(key) { |c| got << c }
|
50
|
+
assert_equal put, got
|
51
|
+
|
52
|
+
File.open('/tmp/x', 'w') { |f| f.write('中国Ruby'.encode(Encoding::GBK)) }
|
53
|
+
@bucket.put_object(key, :file => '/tmp/x')
|
54
|
+
got = ''
|
55
|
+
@bucket.get_object(key) { |c| got << c }
|
56
|
+
assert_equal put, got
|
57
|
+
end
|
58
|
+
|
59
|
+
def encode_number(i)
|
60
|
+
[i].pack('N')
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_binary
|
64
|
+
key = get_key('bin')
|
65
|
+
@bucket.put_object(key) do |stream|
|
66
|
+
(0..1024).each { |i| stream << encode_number(i) }
|
67
|
+
end
|
68
|
+
put = (0..1024).reduce('') { |s, i| s << encode_number(i) }
|
69
|
+
got = ''
|
70
|
+
@bucket.get_object(key) { |c| got << c }
|
71
|
+
assert_equal put, got
|
72
|
+
|
73
|
+
File.open('/tmp/x', 'w') { |f|
|
74
|
+
(0..1024).each { |i| f.write(encode_number(i)) }
|
75
|
+
}
|
76
|
+
@bucket.put_object(key, :file => '/tmp/x')
|
77
|
+
got = ''
|
78
|
+
@bucket.get_object(key) { |c| got << c }
|
79
|
+
assert_equal put, got
|
80
|
+
end
|
81
|
+
end
|
data/tests/test_large_file.rb
CHANGED
@@ -12,8 +12,8 @@ class TestObjectKey < Minitest::Test
|
|
12
12
|
client = Aliyun::OSS::Client.new(
|
13
13
|
:endpoint => conf['endpoint'],
|
14
14
|
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['
|
16
|
-
:access_key_secret => conf['
|
15
|
+
:access_key_id => conf['access_key_id'],
|
16
|
+
:access_key_secret => conf['access_key_secret'])
|
17
17
|
@bucket = client.get_bucket(conf['bucket'])
|
18
18
|
@prefix = 'tests/large_file/'
|
19
19
|
end
|
data/tests/test_multipart.rb
CHANGED
@@ -4,15 +4,15 @@ require 'yaml'
|
|
4
4
|
$LOAD_PATH.unshift(File.expand_path("../../lib", __FILE__))
|
5
5
|
require 'aliyun/oss'
|
6
6
|
|
7
|
-
class TestMultipart < Minitest::
|
7
|
+
class TestMultipart < Minitest::Test
|
8
8
|
def setup
|
9
9
|
conf_file = '~/.oss.yml'
|
10
10
|
conf = YAML.load(File.read(File.expand_path(conf_file)))
|
11
11
|
opts = {
|
12
12
|
endpoint: conf['endpoint'],
|
13
13
|
cname: conf['cname'],
|
14
|
-
access_key_id: conf['
|
15
|
-
access_key_secret: conf['
|
14
|
+
access_key_id: conf['access_key_id'],
|
15
|
+
access_key_secret: conf['access_key_secret'],
|
16
16
|
}
|
17
17
|
client = Aliyun::OSS::Client.new(opts)
|
18
18
|
@bucket_name = conf['bucket']
|
data/tests/test_object_key.rb
CHANGED
@@ -12,8 +12,8 @@ class TestObjectKey < Minitest::Test
|
|
12
12
|
client = Aliyun::OSS::Client.new(
|
13
13
|
:endpoint => conf['endpoint'],
|
14
14
|
:cname => conf['cname'],
|
15
|
-
:access_key_id => conf['
|
16
|
-
:access_key_secret => conf['
|
15
|
+
:access_key_id => conf['access_key_id'],
|
16
|
+
:access_key_secret => conf['access_key_secret'])
|
17
17
|
@bucket = client.get_bucket(conf['bucket'])
|
18
18
|
@prefix = 'tests/object_key/'
|
19
19
|
@keys = {
|
data/tests/test_resumable.rb
CHANGED
@@ -11,8 +11,8 @@ class TestResumable < Minitest::Test
|
|
11
11
|
client = Aliyun::OSS::Client.new(
|
12
12
|
:endpoint => conf['endpoint'],
|
13
13
|
:cname => conf['cname'],
|
14
|
-
:access_key_id => conf['
|
15
|
-
:access_key_secret => conf['
|
14
|
+
:access_key_id => conf['access_key_id'],
|
15
|
+
:access_key_secret => conf['access_key_secret'])
|
16
16
|
@bucket = client.get_bucket(conf['bucket'])
|
17
17
|
@prefix = 'tests/resumable/'
|
18
18
|
end
|
metadata
CHANGED
@@ -1,111 +1,111 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aliyun-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tianlong Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.10'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.4'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.4'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '3.3'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.3'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: webmock
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '1.22'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.22'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - ~>
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0.10'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - ~>
|
108
|
+
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0.10'
|
111
111
|
description: A Ruby program to facilitate accessing Aliyun Object Storage Service
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- spec/aliyun/oss/service_spec.rb
|
152
152
|
- spec/aliyun/oss/util_spec.rb
|
153
153
|
- tests/test_content_type.rb
|
154
|
+
- tests/test_encoding.rb
|
154
155
|
- tests/test_large_file.rb
|
155
156
|
- tests/test_multipart.rb
|
156
157
|
- tests/test_object_key.rb
|
@@ -165,17 +166,17 @@ require_paths:
|
|
165
166
|
- lib
|
166
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
167
168
|
requirements:
|
168
|
-
- -
|
169
|
+
- - ">="
|
169
170
|
- !ruby/object:Gem::Version
|
170
171
|
version: 1.9.3
|
171
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
173
|
requirements:
|
173
|
-
- -
|
174
|
+
- - ">="
|
174
175
|
- !ruby/object:Gem::Version
|
175
176
|
version: '0'
|
176
177
|
requirements: []
|
177
178
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.5.
|
179
|
+
rubygems_version: 2.4.5.1
|
179
180
|
signing_key:
|
180
181
|
specification_version: 4
|
181
182
|
summary: Aliyun OSS SDK for Ruby
|
@@ -191,8 +192,8 @@ test_files:
|
|
191
192
|
- spec/aliyun/oss/service_spec.rb
|
192
193
|
- spec/aliyun/oss/util_spec.rb
|
193
194
|
- tests/test_content_type.rb
|
195
|
+
- tests/test_encoding.rb
|
194
196
|
- tests/test_large_file.rb
|
195
197
|
- tests/test_multipart.rb
|
196
198
|
- tests/test_object_key.rb
|
197
199
|
- tests/test_resumable.rb
|
198
|
-
has_rdoc:
|