swift_client 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +33 -0
- data/lib/swift_client.rb +8 -0
- data/lib/swift_client/version.rb +1 -1
- data/test/swift_client_test.rb +12 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -18,6 +18,39 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
$ gem install swift_client
|
20
20
|
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
First, connect to a Swift cluster:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
swift_client = SwiftClient.new(:auth_url => "https://example.com/auth/v1.0", :username => "account:username", :api_key => "secret api key", :temp_url_key => "optional temp url key")
|
27
|
+
```
|
28
|
+
|
29
|
+
SwiftClient will automatically reconnect in case the endpoint responds with 401
|
30
|
+
Unauthorized to one of your requests using the provided credentials.
|
31
|
+
Otherwise, i.e. in case the endpoint does not respond with 2xx to any of
|
32
|
+
SwiftClient's requests, SwiftClient will raise a `SwiftClient::ResponseError`.
|
33
|
+
|
34
|
+
SwiftClient offers the following requests:
|
35
|
+
|
36
|
+
* head_account -> HTTParty::Response
|
37
|
+
* post_account(headers = {}) -> HTTParty::Response
|
38
|
+
* head_containers -> HTTParty::Response
|
39
|
+
* get_containers(query = {}) -> HTTParty::Response
|
40
|
+
* get_container(container, query = {}) -> HTTParty::Response
|
41
|
+
* head_container(container) -> HTTParty::Response
|
42
|
+
* put_container(container, headers = {}) -> HTTParty::Response
|
43
|
+
* post_container(container, headers = {}) -> HTTParty::Response
|
44
|
+
* delete_container(container) -> HTTParty::Response
|
45
|
+
* put_object(object, data_or_io, container, headers = {}) -> HTTParty::Response
|
46
|
+
* post_object(object, container, headers = {}) -> HTTParty::Response
|
47
|
+
* get_object(object, container) -> HTTParty::Response
|
48
|
+
* head_object(object, container) -> HTTParty::Response
|
49
|
+
* delete_object(object, container) -> HTTParty::Response
|
50
|
+
* get_objects(container, query = {}) -> HTTParty::Response
|
51
|
+
* public_url(object, container) -> HTTParty::Response
|
52
|
+
* temp_url(object, container) -> HTTParty::Response
|
53
|
+
|
21
54
|
## Contributing
|
22
55
|
|
23
56
|
1. Fork it ( https://github.com/mrkamel/swift_client/fork )
|
data/lib/swift_client.rb
CHANGED
@@ -36,10 +36,18 @@ class SwiftClient
|
|
36
36
|
authenticate
|
37
37
|
end
|
38
38
|
|
39
|
+
def head_account
|
40
|
+
request :head, "/"
|
41
|
+
end
|
42
|
+
|
39
43
|
def post_account(headers = {})
|
40
44
|
request :post, "/", :headers => headers
|
41
45
|
end
|
42
46
|
|
47
|
+
def head_containers
|
48
|
+
request :head, "/"
|
49
|
+
end
|
50
|
+
|
43
51
|
def get_containers(query = {})
|
44
52
|
request :get, "/", :query => query
|
45
53
|
end
|
data/lib/swift_client/version.rb
CHANGED
data/test/swift_client_test.rb
CHANGED
@@ -20,12 +20,24 @@ class SwiftClientTest < MiniTest::Test
|
|
20
20
|
assert_equal "https://storage-url.com/path", @swift_client.storage_url
|
21
21
|
end
|
22
22
|
|
23
|
+
def test_head_account
|
24
|
+
stub_request(:head, "https://example.com/v1/AUTH_account/").with(:headers => { "Accept" => "application/json", "X-Auth-Token" => "Token" }).to_return(:status => 204, :body => "", :headers => { "Content-Type" => "application/json" })
|
25
|
+
|
26
|
+
assert 204, @swift_client.head_account.code
|
27
|
+
end
|
28
|
+
|
23
29
|
def test_post_account
|
24
30
|
stub_request(:post, "https://example.com/v1/AUTH_account/").with(:headers => { "Accept" => "application/json", "X-Auth-Token" => "Token", "X-Account-Meta-Test" => "Test" }).to_return(:status => 204, :body => "", :headers => { "Content-Type" => "application/json" })
|
25
31
|
|
26
32
|
assert_equal 204, @swift_client.post_account("X-Account-Meta-Test" => "Test").code
|
27
33
|
end
|
28
34
|
|
35
|
+
def test_head_containers
|
36
|
+
stub_request(:head, "https://example.com/v1/AUTH_account/").with(:headers => { "Accept" => "application/json", "X-Auth-Token" => "Token" }).to_return(:status => 204, :body => "", :headers => { "Content-Type" => "application/json" })
|
37
|
+
|
38
|
+
assert 204, @swift_client.head_containers.code
|
39
|
+
end
|
40
|
+
|
29
41
|
def test_get_containers
|
30
42
|
containers = [
|
31
43
|
{ "count" => 1, "bytes" => 1, "name" => "container-1" },
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swift_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-12-
|
12
|
+
date: 2014-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|