rabbit_swift 0.3.3 → 0.3.4
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/README.md +6 -3
- data/RELEASE.md +6 -0
- data/bin/get_object.rb +34 -7
- data/lib/rabbit_swift/client.rb +1 -23
- data/lib/rabbit_swift/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ecd97e29955444c2365dc1500a1078253454efc
|
4
|
+
data.tar.gz: e36ef4e5bc5a2c7c53eb029d1886806df7a9221e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9db3dd8e17ae2cd2be533ee9d788dcc68aaed1446c38115af9eb590840fcc2a92d93f244d98babc0498f40a766de423691a1906c57e3065ada9a57325712b7e4
|
7
|
+
data.tar.gz: 8d19c17c4efac7fe87771cc307430ea9835459a93f5a5bcd3b235e3d17edbdc9ea168af5fcc8246c31d9722c69e54156484e330163b2cc2c87248e04d8736199
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# RabbitSwift
|
2
2
|
|
3
|
-
OpenStack Swift
|
3
|
+
OpenStack Object Storage (Swift) Client
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -52,11 +52,14 @@ Or install it yourself as:
|
|
52
52
|
|
53
53
|
### Support Static Large Object
|
54
54
|
|
55
|
-
####
|
55
|
+
#### SLO Object Download Support
|
56
|
+
rabbit_swift_client.get_object(token, url) --> enable SLO object download
|
57
|
+
|
58
|
+
#### When upload object size 5GB over. Auto change mode SLO
|
56
59
|
rabbit_swift_client.upload(token, dest_url, 5GB_under_file.zip) --> normal upload
|
57
60
|
rabbit_swift_client.upload(token, dest_url, 5GB_over_file.zip) --> static large object upload
|
58
61
|
|
59
|
-
#### SLO Flow
|
62
|
+
#### SLO Upload Flow
|
60
63
|
1. split file
|
61
64
|
2. upload split files
|
62
65
|
3. upload manifest file
|
data/RELEASE.md
CHANGED
data/bin/get_object.rb
CHANGED
@@ -27,10 +27,18 @@ File.open conf_path do |file|
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
# TODO
|
31
|
+
def decode_large_object_md5(encode_md5)
|
32
|
+
encode_md5.gsub(/\"/,'')
|
33
|
+
end
|
34
|
+
|
30
35
|
rabbit_swift_client = RabbitSwift::Client.new(swift_conf_json)
|
31
36
|
token = rabbit_swift_client.get_token
|
32
37
|
response = rabbit_swift_client.head(token, url)
|
33
38
|
|
39
|
+
is_large_object = response.has_key?('X-Static-Large-Object') ? true : false
|
40
|
+
original_file_size = response['Content-Length']
|
41
|
+
|
34
42
|
response.each do |k, v|
|
35
43
|
puts k + ' = '+ v
|
36
44
|
end
|
@@ -39,13 +47,32 @@ original_file_md5 = response['Etag']
|
|
39
47
|
|
40
48
|
save_file_path = rabbit_swift_client.get_object(token, url, dest_path)
|
41
49
|
puts save_file_path
|
42
|
-
save_file_md5 = Digest::MD5.file(save_file_path).to_s
|
43
50
|
|
44
|
-
|
45
|
-
|
51
|
+
#ref SLO md5 https://github.com/openstack/python-swiftclient/blob/06c73c6020e5af873e3ce245a27035da3448de7b/swiftclient/service.py#L330
|
52
|
+
# self._expected_etag: ヘッダーのEtag
|
53
|
+
# 保存したファイルのmd5 self._actual_md5
|
46
54
|
|
47
|
-
|
48
|
-
|
55
|
+
save_file_size = File.size(save_file_path)
|
56
|
+
puts original_file_size + ' --> original_file_size'
|
57
|
+
puts save_file_size.to_s + ' --> save_file_size'
|
58
|
+
|
59
|
+
if original_file_size.to_i == save_file_size
|
60
|
+
puts 'OK! file size'
|
49
61
|
else
|
50
|
-
puts 'BAD
|
51
|
-
end
|
62
|
+
puts 'BAD file size ><'
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
#when SLO don't check md5. check file size
|
67
|
+
if (!is_large_object)
|
68
|
+
save_file_md5 = Digest::MD5.file(save_file_path).to_s
|
69
|
+
puts original_file_md5 + ' --> original_file_md5'
|
70
|
+
puts save_file_md5 + ' --> save_file_md5'
|
71
|
+
|
72
|
+
if original_file_md5 == save_file_md5
|
73
|
+
puts 'OK! MD5 checksum'
|
74
|
+
else
|
75
|
+
puts 'BAD MD5 checksum ><'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
data/lib/rabbit_swift/client.rb
CHANGED
@@ -10,8 +10,8 @@ module RabbitSwift
|
|
10
10
|
|
11
11
|
class Client
|
12
12
|
|
13
|
-
UPLOAD_SUCCESS_HTTP_STATUS_CODE = 201
|
14
13
|
HEAD_SUCCESS_HTTP_STATUS_CODE = 200
|
14
|
+
UPLOAD_SUCCESS_HTTP_STATUS_CODE = 201
|
15
15
|
DELETE_SUCCESS_HTTP_STATUS_CODE = 204
|
16
16
|
|
17
17
|
@token = nil
|
@@ -80,28 +80,6 @@ module RabbitSwift
|
|
80
80
|
dest_file
|
81
81
|
end
|
82
82
|
|
83
|
-
# TODO
|
84
|
-
def get_static_large_object(token, url, dest_folder = nil)
|
85
|
-
auth_header = {
|
86
|
-
'X-Auth-Token' => token
|
87
|
-
}
|
88
|
-
query = {
|
89
|
-
'format' => 'json'
|
90
|
-
}
|
91
|
-
end
|
92
|
-
|
93
|
-
def list(token, url)
|
94
|
-
auth_header = {
|
95
|
-
'X-Auth-Token' => token
|
96
|
-
}
|
97
|
-
query = {
|
98
|
-
'format' => 'json'
|
99
|
-
}
|
100
|
-
http_client = HTTPClient.new
|
101
|
-
response = http_client.get(URI.parse(URI.encode(url)), query, auth_header)
|
102
|
-
JSON.load(response.body)
|
103
|
-
end
|
104
|
-
|
105
83
|
def get_meta_data(token, url)
|
106
84
|
response = head(token, url)
|
107
85
|
meta_data = {}
|
data/lib/rabbit_swift/version.rb
CHANGED