rabbit_swift 0.3.2 → 0.3.3
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/.gitignore +1 -0
- data/README.md +13 -3
- data/RELEASE.md +6 -0
- data/bin/get_object.rb +51 -0
- data/lib/rabbit_swift/client.rb +37 -2
- data/lib/rabbit_swift/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33c37548a68abd10e6c91148b593fd63cdb86ca6
|
4
|
+
data.tar.gz: 3152c7bfa55fa4afac0fdb60bdff9c23033f751e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fb9190cc15001876e1834118d6ca607e655a2cf88dfbf920fb95ce52160bf77a2ff9505cd62fc66f7f5d3f6d8b0e45bbf91d8561542275051542cc342a3d2ff
|
7
|
+
data.tar.gz: efe1acf209767db3abf169a8e79590e7ce194847b3e22e5b150ce3d93caa47ad5d5cb84f96944b6365ba473ec9c65979e6587b8057a5ad6601fd9c855be4185e
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -44,11 +44,15 @@ Or install it yourself as:
|
|
44
44
|
#### Check Result
|
45
45
|
if (status == RabbitSwift::Client::UPLOAD_SUCCESS_HTTP_STATUS_CODE)
|
46
46
|
puts "upload success!"
|
47
|
-
end
|
47
|
+
end
|
48
|
+
|
49
|
+
### Get Object
|
50
|
+
rabbit_swift_client.get_object(token, url) #save current directory
|
51
|
+
rabbit_swift_client.get_object(token, url, dest_path)
|
48
52
|
|
49
53
|
### Support Static Large Object
|
50
54
|
|
51
|
-
#### When object size 5BG over. Auto change mode SLO
|
55
|
+
#### When upload object size 5BG over. Auto change mode SLO
|
52
56
|
rabbit_swift_client.upload(token, dest_url, 5GB_under_file.zip) --> normal upload
|
53
57
|
rabbit_swift_client.upload(token, dest_url, 5GB_over_file.zip) --> static large object upload
|
54
58
|
|
@@ -62,7 +66,13 @@ Or install it yourself as:
|
|
62
66
|
|
63
67
|
#### List Container
|
64
68
|
bundle exec ruby -I./lib bin/container_list.rb -l /test -c ../chino/conf/conf.json
|
65
|
-
|
69
|
+
|
70
|
+
#### Get Object Client
|
71
|
+
|
72
|
+
bundle exec ruby -I./lib bin/get_object.rb -t /test/file.jpg -c ../chino/conf/conf.json
|
73
|
+
bundle exec ruby -I./lib bin/get_object.rb -t /test/file.jpg -d ./save_folder/ -c ../chino/conf/conf.json
|
74
|
+
|
75
|
+
#### SLO Upload Client
|
66
76
|
bundle exec ruby -I./lib bin/slo_client.rb -s ~/Downloads/test.zip -d /test -c ../chino/conf/conf.json -l 100MB
|
67
77
|
|
68
78
|
|
data/RELEASE.md
CHANGED
data/bin/get_object.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'optparse'
|
3
|
+
require 'rabbit_swift'
|
4
|
+
require 'digest/md5'
|
5
|
+
|
6
|
+
#bundle exec ruby -I./lib bin/get_object.rb -t /test/file.jpg -c ../chino/conf/conf.json
|
7
|
+
#bundle exec ruby -I./lib bin/get_object.rb -t /test/file.jpg -d ./save_folder/ -c ../chino/conf/conf.json
|
8
|
+
|
9
|
+
|
10
|
+
opt = OptionParser.new
|
11
|
+
Version = '1.0.0'
|
12
|
+
|
13
|
+
conf_path = nil
|
14
|
+
dest_path = nil
|
15
|
+
url = nil
|
16
|
+
swift_conf_json = nil
|
17
|
+
opt.on('-c CONF_PATH', 'conf_path') {|v| conf_path = v}
|
18
|
+
opt.on('-d DEST_PATH', 'dest_path') {|v| dest_path = v}
|
19
|
+
opt.on('-t TARGET_OBJECT', 'target object') {|v| url = v}
|
20
|
+
opt.parse!(ARGV)
|
21
|
+
File.open conf_path do |file|
|
22
|
+
conf = JSON.load(file.read)
|
23
|
+
swift_conf_json = conf['swift']
|
24
|
+
|
25
|
+
if url =~ /^\//
|
26
|
+
url = File.join(swift_conf_json['endPoint'] , url)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
rabbit_swift_client = RabbitSwift::Client.new(swift_conf_json)
|
31
|
+
token = rabbit_swift_client.get_token
|
32
|
+
response = rabbit_swift_client.head(token, url)
|
33
|
+
|
34
|
+
response.each do |k, v|
|
35
|
+
puts k + ' = '+ v
|
36
|
+
end
|
37
|
+
|
38
|
+
original_file_md5 = response['Etag']
|
39
|
+
|
40
|
+
save_file_path = rabbit_swift_client.get_object(token, url, dest_path)
|
41
|
+
puts save_file_path
|
42
|
+
save_file_md5 = Digest::MD5.file(save_file_path).to_s
|
43
|
+
|
44
|
+
puts original_file_md5 + ' --> original_file_md5'
|
45
|
+
puts save_file_md5 + ' --> save_file_md5'
|
46
|
+
|
47
|
+
if original_file_md5 == save_file_md5
|
48
|
+
puts 'OK! MD5 checksum'
|
49
|
+
else
|
50
|
+
puts 'BAD MD5 checksum ><'
|
51
|
+
end
|
data/lib/rabbit_swift/client.rb
CHANGED
@@ -11,7 +11,7 @@ module RabbitSwift
|
|
11
11
|
class Client
|
12
12
|
|
13
13
|
UPLOAD_SUCCESS_HTTP_STATUS_CODE = 201
|
14
|
-
HEAD_SUCCESS_HTTP_STATUS_CODE =
|
14
|
+
HEAD_SUCCESS_HTTP_STATUS_CODE = 200
|
15
15
|
DELETE_SUCCESS_HTTP_STATUS_CODE = 204
|
16
16
|
|
17
17
|
@token = nil
|
@@ -47,14 +47,49 @@ module RabbitSwift
|
|
47
47
|
'X-Auth-Token' => token
|
48
48
|
}
|
49
49
|
http_client = HTTPClient.new
|
50
|
-
response = http_client.head(URI.parse(URI.encode(url)))
|
50
|
+
response = http_client.head(URI.parse(URI.encode(url)), nil, auth_header)
|
51
51
|
header = {}
|
52
|
+
if HEAD_SUCCESS_HTTP_STATUS_CODE != response.status
|
53
|
+
raise 'ERROR HTTP_STATUS = ' + response.status
|
54
|
+
end
|
52
55
|
response.header.all.each do |header_list|
|
53
56
|
header[header_list[0]] = header_list[1]
|
54
57
|
end
|
55
58
|
header
|
56
59
|
end
|
57
60
|
|
61
|
+
# TODO folder all save
|
62
|
+
def get_object(token, url, dest_folder = nil)
|
63
|
+
auth_header = {
|
64
|
+
'X-Auth-Token' => token
|
65
|
+
}
|
66
|
+
query = nil
|
67
|
+
dest_file = nil
|
68
|
+
|
69
|
+
if dest_folder.nil?
|
70
|
+
dest_file = File.join('./', File.basename(url))
|
71
|
+
else
|
72
|
+
dest_file = File.join(dest_folder, File.basename(url))
|
73
|
+
end
|
74
|
+
|
75
|
+
http_client = HTTPClient.new
|
76
|
+
|
77
|
+
open(dest_file, 'wb') do |file|
|
78
|
+
file.write http_client.get_content(URI.parse(URI.encode(url)), query, auth_header)
|
79
|
+
end
|
80
|
+
dest_file
|
81
|
+
end
|
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
|
+
|
58
93
|
def list(token, url)
|
59
94
|
auth_header = {
|
60
95
|
'X-Auth-Token' => token
|
data/lib/rabbit_swift/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit_swift
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AKB428
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -85,6 +85,7 @@ email:
|
|
85
85
|
- otoraru@gmail.com
|
86
86
|
executables:
|
87
87
|
- container_list.rb
|
88
|
+
- get_object.rb
|
88
89
|
- slo_client.rb
|
89
90
|
extensions: []
|
90
91
|
extra_rdoc_files: []
|
@@ -96,6 +97,7 @@ files:
|
|
96
97
|
- RELEASE.md
|
97
98
|
- Rakefile
|
98
99
|
- bin/container_list.rb
|
100
|
+
- bin/get_object.rb
|
99
101
|
- bin/slo_client.rb
|
100
102
|
- lib/rabbit_swift.rb
|
101
103
|
- lib/rabbit_swift/account/.gitkeep
|