fog-aliyun 0.3.16 → 0.3.17
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 +26 -0
- data/fog-aliyun.gemspec +2 -2
- data/lib/fog/aliyun/models/storage/files.rb +13 -12
- data/lib/fog/aliyun/requests/storage/get_bucket.rb +5 -4
- data/lib/fog/aliyun/requests/storage/get_container.rb +3 -1
- data/lib/fog/aliyun/requests/storage/get_containers.rb +3 -1
- data/lib/fog/aliyun/requests/storage/get_object.rb +18 -8
- data/lib/fog/aliyun/requests/storage/head_object.rb +4 -4
- data/lib/fog/aliyun/requests/storage/list_buckets.rb +3 -1
- data/lib/fog/aliyun/requests/storage/list_objects.rb +6 -5
- data/lib/fog/aliyun/storage.rb +17 -2
- data/lib/fog/aliyun/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e69954ae4115e7137286fe738da6423b1898a522f463ac65526ca4c692ce40e
|
4
|
+
data.tar.gz: 991d52c7f3688fc0417b037266480f800f189a9de8d0af421d139829ddde6121
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a53c7749c71417451ae19d72834c3cabfa8f6a13fe4a68f0c1c05515429444c799ccc410241cfbbbfdebbe3b51496a35607f25869eebb09d2b99d9325114a4c
|
7
|
+
data.tar.gz: 165d735915b2cf6e7887a0f5b5205afef604bfa6d6c9bdc5471203811d6c1f4d19ca6fcd45388a01672983e6c03489354c99745e1376f0da9015334f68133b85
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,30 @@
|
|
1
1
|
## 0.3.17 (Unreleased)
|
2
|
+
## 0.3.17 (July 06, 2020)
|
3
|
+
|
4
|
+
IMPROVEMENTS:
|
5
|
+
- adater oss_sdk_log_path [GH-125](https://github.com/fog/fog-aliyun/pull/125)
|
6
|
+
- update ruby sdk to 0.7.3 [GH-124](https://github.com/fog/fog-aliyun/pull/124)
|
7
|
+
- adapter maxkeys conversion problem [GH-123](https://github.com/fog/fog-aliyun/pull/123)
|
8
|
+
- [Enhance tests][Auth & Connectivity scenarios] Test that API cannot be accessed using incorrect credentials [GH-117](https://github.com/fog/fog-aliyun/pull/117)
|
9
|
+
- [Enhance tests][Auth & Connectivity scenarios] Test that API can be accessed using valid credentials [GH-116](https://github.com/fog/fog-aliyun/pull/116)
|
10
|
+
- adapter custom log environment variable [GH-114](https://github.com/fog/fog-aliyun/pull/114)
|
11
|
+
- [Enhance tests][Buckets scenarios] (NEGATIVE TEST) Test that error is thrown when trying to access non-existing bucket [GH-110](https://github.com/fog/fog-aliyun/pull/110)
|
12
|
+
- [Enhance tests][Buckets scenarios] (NEGATIVE TEST) Test that error is thrown when trying to create already existing bucket [GH-109](https://github.com/fog/fog-aliyun/pull/109)
|
13
|
+
- [Enhance tests][Buckets scenarios] Test that it is possible to destroy a bucket [GH-108](https://github.com/fog/fog-aliyun/pull/108)
|
14
|
+
- [Enhance tests][Buckets scenarios] Test that it is possible to create a new bucket [GH-107](https://github.com/fog/fog-aliyun/pull/107)
|
15
|
+
- [Enhance tests][Buckets scenarios] Test that it is possible to list all buckets [GH-105](https://github.com/fog/fog-aliyun/pull/105)
|
16
|
+
- [Enhance tests][Files & Directory scenarios] Test getting bucket when directory exists named with the same name as a bucket [GH-101](https://github.com/fog/fog-aliyun/pull/101)
|
17
|
+
- [Enhance tests][Files & Directory scenarios] Test file copy operations [GH-100](https://github.com/fog/fog-aliyun/pull/100)
|
18
|
+
- reset the last PR [GH-133](https://github.com/fog/fog-aliyun/pull/133)
|
19
|
+
- improve put_object_with_body and head_object using sdk do_request [GH-131](https://github.com/fog/fog-aliyun/pull/131)
|
20
|
+
|
21
|
+
BUG FIXES:
|
22
|
+
- fix max key again [GH-128](https://github.com/fog/fog-aliyun/pull/128)
|
23
|
+
- fix downloading object when pushing app twice [GH-127](https://github.com/fog/fog-aliyun/pull/127)
|
24
|
+
- fix max key [GH-126](https://github.com/fog/fog-aliyun/pull/126)
|
25
|
+
- fix max-keys conversion problem [GH-121](https://github.com/fog/fog-aliyun/pull/121)
|
26
|
+
- fix @aliyun_oss_sdk_log_path is nil [GH-132](https://github.com/fog/fog-aliyun/pull/132)
|
27
|
+
|
2
28
|
## 0.3.16 (June 18, 2020)
|
3
29
|
|
4
30
|
IMPROVEMENTS:
|
data/fog-aliyun.gemspec
CHANGED
@@ -28,9 +28,9 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency 'rubocop'
|
29
29
|
spec.add_development_dependency 'simplecov'
|
30
30
|
spec.add_development_dependency 'memory_profiler'
|
31
|
-
spec.add_development_dependency 'aliyun-sdk', '~> 0.7.
|
31
|
+
spec.add_development_dependency 'aliyun-sdk', '~> 0.7.3'
|
32
32
|
|
33
|
-
spec.add_dependency 'aliyun-sdk', '~> 0.7.
|
33
|
+
spec.add_dependency 'aliyun-sdk', '~> 0.7.3'
|
34
34
|
spec.add_dependency 'fog-core'
|
35
35
|
spec.add_dependency 'fog-json'
|
36
36
|
spec.add_dependency 'ipaddress', '~> 0.8'
|
@@ -85,7 +85,7 @@ module Fog
|
|
85
85
|
end
|
86
86
|
end
|
87
87
|
|
88
|
-
def get(key)
|
88
|
+
def get(key, options = {}, &block)
|
89
89
|
requires :directory
|
90
90
|
bucket_name, directory_key = check_directory_key(directory.key)
|
91
91
|
object = if directory_key == ''
|
@@ -94,24 +94,25 @@ module Fog
|
|
94
94
|
directory_key + '/' + key
|
95
95
|
end
|
96
96
|
begin
|
97
|
-
data = service.get_object(object,
|
98
|
-
|
97
|
+
data = service.get_object(object, options.merge({bucket: bucket_name}), &block)
|
98
|
+
headers = data.headers
|
99
|
+
lastModified = headers[:last_modified]
|
99
100
|
last_modified = (Time.parse(lastModified).localtime if !lastModified.nil? && lastModified != '')
|
100
101
|
|
101
|
-
date =
|
102
|
+
date = headers[:date]
|
102
103
|
date = (Time.parse(date).localtime if !date.nil? && date != '')
|
103
104
|
file_data = {
|
104
|
-
body: data
|
105
|
-
content_length:
|
105
|
+
body: data.body,
|
106
|
+
content_length: headers[:content_length].to_i,
|
106
107
|
key: key,
|
107
108
|
last_modified: last_modified,
|
108
|
-
content_type:
|
109
|
-
etag:
|
109
|
+
content_type: headers[:content_type],
|
110
|
+
etag: headers[:etag],
|
110
111
|
date: date,
|
111
|
-
connection:
|
112
|
-
accept_ranges:
|
113
|
-
server:
|
114
|
-
object_type:
|
112
|
+
connection: headers[:connection],
|
113
|
+
accept_ranges: headers[:accept_ranges],
|
114
|
+
server: headers[:server],
|
115
|
+
object_type: headers[:x_oss_object_type]
|
115
116
|
}
|
116
117
|
|
117
118
|
new(file_data)
|
@@ -13,22 +13,23 @@ module Fog
|
|
13
13
|
marker = options['marker']
|
14
14
|
# Set the GetBucket max limitation to 1000
|
15
15
|
maxKeys = options['max-keys'] || 1000
|
16
|
-
maxKeys =
|
16
|
+
maxKeys = maxKeys.to_i
|
17
|
+
maxKeys = [maxKeys, 1000].min.to_s
|
17
18
|
delimiter = options['delimiter']
|
18
19
|
path = ''
|
19
20
|
if prefix
|
20
21
|
path += '/?prefix=' + prefix
|
21
22
|
path += '&marker=' + marker if marker
|
22
|
-
path += '&max-keys=' + maxKeys
|
23
|
+
path += '&max-keys=' + maxKeys if maxKeys
|
23
24
|
path += '&delimiter=' + delimiter if delimiter
|
24
25
|
|
25
26
|
elsif marker
|
26
27
|
path += '/?marker=' + marker
|
27
|
-
path += '&max-keys=' + maxKeys
|
28
|
+
path += '&max-keys=' + maxKeys if maxKeys
|
28
29
|
path += '&delimiter=' + delimiter if delimiter
|
29
30
|
|
30
31
|
elsif maxKeys
|
31
|
-
path += '/?max-keys=' + maxKeys
|
32
|
+
path += '/?max-keys=' + maxKeys
|
32
33
|
path += '&delimiter=' + delimiter if delimiter
|
33
34
|
elsif delimiter
|
34
35
|
path += '/?delimiter=' + delimiter
|
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
bucket ||= @aliyun_oss_bucket
|
20
20
|
prefix = options[:prefix]
|
21
21
|
marker = options[:marker]
|
22
|
-
maxKeys = options[:maxKeys]
|
22
|
+
maxKeys = options[:maxKeys]||1000
|
23
|
+
maxKeys = maxKeys.to_i
|
24
|
+
maxKeys = [maxKeys,1000].min.to_s
|
23
25
|
delimiter = '/'
|
24
26
|
|
25
27
|
path = ''
|
@@ -9,19 +9,29 @@ module Fog
|
|
9
9
|
# ==== Parameters
|
10
10
|
# * object<~String> - Name of object to look for
|
11
11
|
#
|
12
|
-
def get_object(object,
|
12
|
+
def get_object(object, options = {}, &block)
|
13
13
|
options = options.reject { |_key, value| value.nil? }
|
14
14
|
bucket_name = options[:bucket]
|
15
15
|
bucket_name ||= @aliyun_oss_bucket
|
16
|
+
options.delete(:bucket)
|
16
17
|
# Using OSS ruby SDK to fix performance issue
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
params = { :headers => {} }
|
19
|
+
params[:query] = options.delete('query') || {}
|
20
|
+
|
21
|
+
params[:headers].merge!(options)
|
22
|
+
if options['If-Modified-Since']
|
23
|
+
params[:headers]['If-Modified-Since'] = Fog::Time.at(options['If-Modified-Since'].to_i).to_date_header
|
24
|
+
end
|
25
|
+
if options['If-Unmodified-Since']
|
26
|
+
params[:headers]['If-Unmodified-Since'] = Fog::Time.at(options['If-Unmodified-Since'].to_i).to_date_header
|
27
|
+
end
|
28
|
+
|
29
|
+
if block_given?
|
30
|
+
params[:response_block] = Proc.new
|
21
31
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
32
|
+
|
33
|
+
@oss_http.get({:bucket => bucket_name, :object => object}, params, &block)
|
34
|
+
|
25
35
|
end
|
26
36
|
end
|
27
37
|
end
|
@@ -10,14 +10,14 @@ module Fog
|
|
10
10
|
# * object<~String> - Name of object to look for
|
11
11
|
#
|
12
12
|
def head_object(object, options = {})
|
13
|
-
|
14
|
-
|
15
|
-
resource =
|
13
|
+
bucket_name = options[:bucket]
|
14
|
+
bucket_name ||= @aliyun_oss_bucket
|
15
|
+
resource = bucket_name + '/' + object
|
16
16
|
ret = request(
|
17
17
|
expects: [200, 404],
|
18
18
|
method: 'HEAD',
|
19
19
|
path: object,
|
20
|
-
bucket:
|
20
|
+
bucket: bucket_name,
|
21
21
|
resource: resource
|
22
22
|
)
|
23
23
|
ret
|
@@ -10,24 +10,25 @@ module Fog
|
|
10
10
|
prefix = options['prefix']
|
11
11
|
marker = options['marker']
|
12
12
|
# Set the ListObjects max limitation to 1000
|
13
|
-
maxKeys = options[
|
14
|
-
maxKeys =
|
13
|
+
maxKeys = options[:maxKeys]||1000
|
14
|
+
maxKeys = maxKeys.to_i
|
15
|
+
maxKeys = [maxKeys,1000].min.to_s
|
15
16
|
delimiter = options['delimiter']
|
16
17
|
|
17
18
|
path = ''
|
18
19
|
if prefix
|
19
20
|
path += '/?prefix=' + prefix
|
20
21
|
path += '&marker=' + marker if marker
|
21
|
-
path += '&max-keys=' + maxKeys
|
22
|
+
path += '&max-keys=' + maxKeys if maxKeys
|
22
23
|
path += '&delimiter=' + delimiter if delimiter
|
23
24
|
|
24
25
|
elsif marker
|
25
26
|
path += '/?marker=' + marker
|
26
|
-
path += '&max-keys=' + maxKeys
|
27
|
+
path += '&max-keys=' + maxKeys if maxKeys
|
27
28
|
path += '&delimiter=' + delimiter if delimiter
|
28
29
|
|
29
30
|
elsif maxKeys
|
30
|
-
path += '/?max-keys=' + maxKeys
|
31
|
+
path += '/?max-keys=' + maxKeys
|
31
32
|
path += '&delimiter=' + delimiter if delimiter
|
32
33
|
elsif delimiter
|
33
34
|
path += '/?delimiter=' + delimiter
|
data/lib/fog/aliyun/storage.rb
CHANGED
@@ -19,7 +19,9 @@ module Fog
|
|
19
19
|
|
20
20
|
recognizes :aliyun_oss_endpoint,
|
21
21
|
:aliyun_oss_location,
|
22
|
-
:aliyun_region_id
|
22
|
+
:aliyun_region_id,
|
23
|
+
:aliyun_oss_sdk_log_path
|
24
|
+
|
23
25
|
requires :aliyun_accesskey_id,
|
24
26
|
:aliyun_accesskey_secret,
|
25
27
|
:aliyun_oss_bucket
|
@@ -72,6 +74,7 @@ module Fog
|
|
72
74
|
attr_reader :aliyun_oss_endpoint
|
73
75
|
attr_reader :aliyun_region_id
|
74
76
|
attr_reader :aliyun_oss_bucket
|
77
|
+
attr_reader :aliyun_oss_sdk_log_path
|
75
78
|
|
76
79
|
def initialize(options = {})
|
77
80
|
# initialize the parameters
|
@@ -80,7 +83,11 @@ module Fog
|
|
80
83
|
@aliyun_accesskey_id = options[:aliyun_accesskey_id]
|
81
84
|
@aliyun_accesskey_secret = options[:aliyun_accesskey_secret]
|
82
85
|
@aliyun_oss_bucket = options[:aliyun_oss_bucket]
|
83
|
-
|
86
|
+
@aliyun_oss_sdk_log_path=options[:aliyun_oss_sdk_log_path]
|
87
|
+
if @aliyun_oss_sdk_log_path && !::File.exist?(@aliyun_oss_sdk_log_path)
|
88
|
+
`touch #{@aliyun_oss_sdk_log_path}`
|
89
|
+
end
|
90
|
+
ENV["ALIYUN_OSS_SDK_LOG_PATH"] = @aliyun_oss_sdk_log_path
|
84
91
|
# check for the parameters
|
85
92
|
missing_credentials = []
|
86
93
|
missing_credentials << :aliyun_oss_bucket unless @aliyun_oss_bucket
|
@@ -106,6 +113,14 @@ module Fog
|
|
106
113
|
:access_key_id => @aliyun_accesskey_id,
|
107
114
|
:access_key_secret => @aliyun_accesskey_secret
|
108
115
|
)
|
116
|
+
|
117
|
+
# initiate a aliyun oss ruby sdk config and using sdk http to invoke the OSS openapi
|
118
|
+
@oss_config = AliyunOssSdk::Config.new(
|
119
|
+
:endpoint => @aliyun_oss_endpoint,
|
120
|
+
:access_key_id => @aliyun_accesskey_id,
|
121
|
+
:access_key_secret => @aliyun_accesskey_secret
|
122
|
+
)
|
123
|
+
@oss_http = AliyunOssSdk::HTTP.new(@oss_config)
|
109
124
|
end
|
110
125
|
|
111
126
|
def reload
|
data/lib/fog/aliyun/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-aliyun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Qinsi Deng, Jianxun Li, Jane Han, Guimin He
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06
|
11
|
+
date: 2020-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -134,28 +134,28 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.7.
|
137
|
+
version: 0.7.3
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.7.
|
144
|
+
version: 0.7.3
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: aliyun-sdk
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 0.7.
|
151
|
+
version: 0.7.3
|
152
152
|
type: :runtime
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: 0.7.
|
158
|
+
version: 0.7.3
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: fog-core
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|