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 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