rabbit_swift 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6a4204659e66ca66e7c59bfbed294b9196c94098
4
- data.tar.gz: 2e55781dc9bf5cc9eefecc00cf317b2b78de3ca7
3
+ metadata.gz: 33c37548a68abd10e6c91148b593fd63cdb86ca6
4
+ data.tar.gz: 3152c7bfa55fa4afac0fdb60bdff9c23033f751e
5
5
  SHA512:
6
- metadata.gz: ef793438a4a3a599fc8fb291d11c3b4cbc1e2602058b5823c541c89c81dfa4bb70e9d4aa5d414c6d27cc1b3f29498153016f3240fcd678c98d8d92f206ded887
7
- data.tar.gz: 5c4d64762afe5d8d0ff99cb4ca79bce0fd261903a0cd191b1e3aed6fc3243fc50657847de258946d2376174a2b15ec84f7ff5811b7379bcc2ef6227d778c9d17
6
+ metadata.gz: 1fb9190cc15001876e1834118d6ca607e655a2cf88dfbf920fb95ce52160bf77a2ff9505cd62fc66f7f5d3f6d8b0e45bbf91d8561542275051542cc342a3d2ff
7
+ data.tar.gz: efe1acf209767db3abf169a8e79590e7ce194847b3e22e5b150ce3d93caa47ad5d5cb84f96944b6365ba473ec9c65979e6587b8057a5ad6601fd9c855be4185e
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  .idea/
16
+ /private/
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
- #### SLO Client
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
@@ -1,5 +1,11 @@
1
1
  # リリース履歴
2
2
 
3
+ ## 0.3.3
4
+
5
+ (2015/02/19)
6
+
7
+ add Get Object Method
8
+
3
9
  ## 0.3.2
4
10
 
5
11
  (2015/02/18)
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
@@ -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 = 204
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
@@ -1,3 +1,3 @@
1
1
  module RabbitSwift
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
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.2
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-17 00:00:00.000000000 Z
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