fog-aliyun 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|