fog-aliyun 0.3.7 → 0.3.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/fog-aliyun.gemspec +3 -3
- data/lib/fog/aliyun/models/storage/directories.rb +0 -2
- data/lib/fog/aliyun/models/storage/directory.rb +12 -1
- data/lib/fog/aliyun/models/storage/file.rb +16 -11
- data/lib/fog/aliyun/models/storage/files.rb +45 -11
- data/lib/fog/aliyun/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 111b9682a34af25b9856551baebc1acaff7a7b41c613d37f65ef47a9d5fd2e96
|
4
|
+
data.tar.gz: 242585bce56cba8e443a991e44f5b1b7306b61ded43c0b57e8af7a4e48bcd408
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc4e02bae46ba2520af281d5321fe517b4030439239d771eddc89a235052627831ab13768e9784100654d0e6ba883bb6b15de0ddd5234cac446ac38d007f9424
|
7
|
+
data.tar.gz: df23687c6c0103993eb2bc5c276ce9f5c45ec8ff7c9478e80de1b7faff5d6cf32764c520316854fae4d3404425778a7912703f274216fe2a1671842142822380
|
data/fog-aliyun.gemspec
CHANGED
@@ -7,10 +7,10 @@ require 'fog/aliyun/version'
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = 'fog-aliyun'
|
9
9
|
spec.version = Fog::Aliyun::VERSION
|
10
|
-
spec.authors = ['Qinsi Deng, Jianxun Li, Jane Han']
|
11
|
-
spec.email = ['dengqinsi@sina.com']
|
10
|
+
spec.authors = ['Qinsi Deng, Jianxun Li, Jane Han, Guimin He']
|
11
|
+
spec.email = ['dengqinsi@sina.com', 'guimin.hgm@alibaba-inc.com']
|
12
12
|
|
13
|
-
spec.summary = 'Fog provider for
|
13
|
+
spec.summary = 'Fog provider for Alibaba Cloud Web Services.'
|
14
14
|
spec.description = 'As a FOG provider, fog-aliyun support aliyun OSS/ECS. It will support more aliyun services later.'
|
15
15
|
spec.homepage = 'https://github.com/fog/fog-aliyun'
|
16
16
|
spec.license = 'MIT'
|
@@ -38,8 +38,6 @@ module Fog
|
|
38
38
|
new(key: key) if ret.data[:status] == 200
|
39
39
|
else
|
40
40
|
data = service.get_bucket(key)
|
41
|
-
puts "[DEBUG] Getting the bucket named with #{key}..."
|
42
|
-
puts data
|
43
41
|
if data.class == Hash && data.key?('Code') && !data['Code'].nil? && !data['Code'].empty?
|
44
42
|
dir = key + '/'
|
45
43
|
ret = service.head_object(dir, options)
|
@@ -41,7 +41,18 @@ module Fog
|
|
41
41
|
|
42
42
|
def save
|
43
43
|
requires :key
|
44
|
-
|
44
|
+
|
45
|
+
# Checking whether the key is a bucket and meet the multi-bucket scenario.
|
46
|
+
# If the key is a existing bucket, return it directly.
|
47
|
+
key = key.chomp('/')
|
48
|
+
if !key.nil? && key != '' && key != '.' && !(key.include? '/')
|
49
|
+
data = service.get_bucket(key)
|
50
|
+
if data.class == Hash && data.key?('Code') && !data['Code'].nil? && !data['Code'].empty?
|
51
|
+
puts "[INFO] The key #{key} is not a bucket and create one folder named with it."
|
52
|
+
service.put_container(key)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
45
56
|
true
|
46
57
|
end
|
47
58
|
end
|
@@ -35,11 +35,13 @@ module Fog
|
|
35
35
|
|
36
36
|
def copy(target_directory_key, target_file_key, options = {})
|
37
37
|
requires :directory, :key
|
38
|
-
|
38
|
+
directory_key = collection.check_directory_key(directory.key)
|
39
|
+
source_object = if directory_key == ''
|
39
40
|
key
|
40
41
|
else
|
41
|
-
|
42
|
+
directory_key + '/' + key
|
42
43
|
end
|
44
|
+
target_directory_key = collection.check_directory_key(target_directory_key)
|
43
45
|
target_object = if target_directory_key == ''
|
44
46
|
target_file_key
|
45
47
|
else
|
@@ -52,10 +54,11 @@ module Fog
|
|
52
54
|
|
53
55
|
def destroy
|
54
56
|
requires :directory, :key
|
55
|
-
|
57
|
+
directory_key = collection.check_directory_key(directory.key)
|
58
|
+
object = if directory_key == ''
|
56
59
|
key
|
57
60
|
else
|
58
|
-
|
61
|
+
directory_key + '/' + key
|
59
62
|
end
|
60
63
|
service.delete_object(object)
|
61
64
|
true
|
@@ -91,10 +94,11 @@ module Fog
|
|
91
94
|
expires = expires.nil? ? 0 : expires.to_i
|
92
95
|
|
93
96
|
requires :directory, :key
|
94
|
-
|
97
|
+
directory_key = collection.check_directory_key(directory.key)
|
98
|
+
object = if directory_key == ''
|
95
99
|
key
|
96
100
|
else
|
97
|
-
|
101
|
+
directory_key + '/' + key
|
98
102
|
end
|
99
103
|
service.get_object_http_url_public(object, expires, options)
|
100
104
|
end
|
@@ -109,11 +113,11 @@ module Fog
|
|
109
113
|
options['Content-Type'] = content_type if content_type
|
110
114
|
options['Content-Disposition'] = content_disposition if content_disposition
|
111
115
|
options.merge!(metadata_to_headers)
|
112
|
-
|
113
|
-
object = if
|
116
|
+
directory_key = collection.check_directory_key(directory.key)
|
117
|
+
object = if directory_key == ''
|
114
118
|
key
|
115
119
|
else
|
116
|
-
|
120
|
+
directory_key + '/' + key
|
117
121
|
end
|
118
122
|
if body.is_a?(::File)
|
119
123
|
data = service.put_object(object, body, options).data
|
@@ -168,10 +172,11 @@ module Fog
|
|
168
172
|
|
169
173
|
def metadata_attributes
|
170
174
|
if last_modified
|
171
|
-
|
175
|
+
directory_key = collection.check_directory_key(directory.key)
|
176
|
+
object = if directory_key == ''
|
172
177
|
key
|
173
178
|
else
|
174
|
-
|
179
|
+
directory_key + '/' + key
|
175
180
|
end
|
176
181
|
|
177
182
|
data = service.head_object(object).data
|
@@ -15,9 +15,38 @@ module Fog
|
|
15
15
|
|
16
16
|
model Fog::Storage::Aliyun::File
|
17
17
|
|
18
|
+
# check_directory_key have two functions:
|
19
|
+
# 1. trim the directory_key suffix '/'
|
20
|
+
# 2. checking whether the directory_key is a bucket.
|
21
|
+
# If so, it will return directly to avoid to create a new redundant folder named with directory_key.
|
22
|
+
# This point will be applied to multi-bucket and make bucket as a directory scenario.
|
23
|
+
def check_directory_key(directory_key)
|
24
|
+
if directory_key != ''
|
25
|
+
# trim the suffix '/'
|
26
|
+
directory_key = directory_key.chomp('/')
|
27
|
+
# The bucket name can not contain '/', so if directory_key, return directory.
|
28
|
+
if directory_key.include? '/'
|
29
|
+
directory_key
|
30
|
+
else
|
31
|
+
data = service.get_bucket(directory_key)
|
32
|
+
puts "[DEBUG] Getting the bucket named with directory name #{directory_key}..."
|
33
|
+
if data.class == Hash && data.key?('Code') && !data['Code'].nil? && !data['Code'].empty?
|
34
|
+
puts "[INFO] The directory name #{directory_key} is not a bucket and will create one folder named with it."
|
35
|
+
directory_key
|
36
|
+
else
|
37
|
+
puts "[INFO] The directory name #{directory_key} is a bucket and store objects directly."
|
38
|
+
''
|
39
|
+
end
|
40
|
+
end
|
41
|
+
else
|
42
|
+
''
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
18
46
|
def all(_options = {})
|
19
47
|
requires :directory
|
20
|
-
|
48
|
+
directory_key = check_directory_key(directory.key)
|
49
|
+
prefix = directory_key + '/' if directory_key != '' && directory_key != '.' && !directory_key.nil?
|
21
50
|
files = service.list_objects(prefix: prefix)['Contents']
|
22
51
|
return if files.nil?
|
23
52
|
data = []
|
@@ -59,10 +88,11 @@ module Fog
|
|
59
88
|
|
60
89
|
def get(key)
|
61
90
|
requires :directory
|
62
|
-
|
91
|
+
directory_key = check_directory_key(directory.key)
|
92
|
+
object = if directory_key == ''
|
63
93
|
key
|
64
94
|
else
|
65
|
-
|
95
|
+
directory_key + '/' + key
|
66
96
|
end
|
67
97
|
begin
|
68
98
|
data = service.get_object(object)
|
@@ -127,20 +157,22 @@ module Fog
|
|
127
157
|
|
128
158
|
def get_url(key)
|
129
159
|
requires :directory
|
130
|
-
|
160
|
+
directory_key = check_directory_key(directory.key)
|
161
|
+
object = if directory_key == ''
|
131
162
|
key
|
132
163
|
else
|
133
|
-
|
164
|
+
directory_key + '/' + key
|
134
165
|
end
|
135
166
|
service.get_object_http_url_public(object, 3600)
|
136
167
|
end
|
137
168
|
|
138
169
|
def get_http_url(key, expires, options = {})
|
139
170
|
requires :directory
|
140
|
-
|
171
|
+
directory_key = check_directory_key(directory.key)
|
172
|
+
object = if directory_key == ''
|
141
173
|
key
|
142
174
|
else
|
143
|
-
|
175
|
+
directory_key + '/' + key
|
144
176
|
end
|
145
177
|
expires = expires.nil? ? 0 : expires.to_i
|
146
178
|
service.get_object_http_url_public(object, expires, options)
|
@@ -148,10 +180,11 @@ module Fog
|
|
148
180
|
|
149
181
|
def get_https_url(key, expires, options = {})
|
150
182
|
requires :directory
|
151
|
-
|
183
|
+
directory_key = check_directory_key(directory.key)
|
184
|
+
object = if directory_key == ''
|
152
185
|
key
|
153
186
|
else
|
154
|
-
|
187
|
+
directory_key + '/' + key
|
155
188
|
end
|
156
189
|
expires = expires.nil? ? 0 : expires.to_i
|
157
190
|
service.get_object_https_url_public(object, expires, options)
|
@@ -159,10 +192,11 @@ module Fog
|
|
159
192
|
|
160
193
|
def head(key, _options = {})
|
161
194
|
requires :directory
|
162
|
-
|
195
|
+
directory_key = check_directory_key(directory.key)
|
196
|
+
object = if directory_key == ''
|
163
197
|
key
|
164
198
|
else
|
165
|
-
|
199
|
+
directory_key + '/' + key
|
166
200
|
end
|
167
201
|
data = service.head_object(object).data
|
168
202
|
return nil if data[:status] == 404
|
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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Qinsi Deng, Jianxun Li, Jane Han
|
7
|
+
- Qinsi Deng, Jianxun Li, Jane Han, Guimin He
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -160,6 +160,7 @@ description: As a FOG provider, fog-aliyun support aliyun OSS/ECS. It will suppo
|
|
160
160
|
more aliyun services later.
|
161
161
|
email:
|
162
162
|
- dengqinsi@sina.com
|
163
|
+
- guimin.hgm@alibaba-inc.com
|
163
164
|
executables: []
|
164
165
|
extensions: []
|
165
166
|
extra_rdoc_files: []
|
@@ -308,5 +309,5 @@ requirements: []
|
|
308
309
|
rubygems_version: 3.0.6
|
309
310
|
signing_key:
|
310
311
|
specification_version: 4
|
311
|
-
summary: Fog provider for
|
312
|
+
summary: Fog provider for Alibaba Cloud Web Services.
|
312
313
|
test_files: []
|