swift_client 0.0.7 → 0.0.8
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.
- data/lib/swift_client.rb +10 -1
- data/lib/swift_client/version.rb +1 -1
- data/test/swift_client_test.rb +13 -1
- metadata +2 -2
data/lib/swift_client.rb
CHANGED
@@ -93,7 +93,12 @@ class SwiftClient
|
|
93
93
|
mime_type = MIME::Types.of(object_name).first
|
94
94
|
|
95
95
|
extended_headers = (headers || {}).dup
|
96
|
-
|
96
|
+
|
97
|
+
unless find_header_key(extended_headers, "Content-Type")
|
98
|
+
extended_headers["Content-Type"] = mime_type.content_type if mime_type
|
99
|
+
extended_headers["Content-Type"] ||= "application/octet-stream"
|
100
|
+
end
|
101
|
+
|
97
102
|
extended_headers["Transfer-Encoding"] = "chunked"
|
98
103
|
|
99
104
|
request :put, "/#{container_name}/#{object_name}", :body_stream => data_or_io.respond_to?(:read) ? data_or_io : StringIO.new(data_or_io), :headers => extended_headers
|
@@ -153,6 +158,10 @@ class SwiftClient
|
|
153
158
|
|
154
159
|
private
|
155
160
|
|
161
|
+
def find_header_key(headers, key)
|
162
|
+
headers.keys.detect { |k| k.downcase == key.downcase }
|
163
|
+
end
|
164
|
+
|
156
165
|
def request(method, path, opts = {})
|
157
166
|
headers = (opts[:headers] || {}).dup
|
158
167
|
headers["X-Auth-Token"] = auth_token
|
data/lib/swift_client/version.rb
CHANGED
data/test/swift_client_test.rb
CHANGED
@@ -131,11 +131,23 @@ class SwiftClientTest < MiniTest::Test
|
|
131
131
|
end
|
132
132
|
|
133
133
|
def test_put_object
|
134
|
-
stub_request(:put, "https://example.com/v1/AUTH_account/container/object").with(:body => "data", :headers => { "Transfer-Encoding" => "chunked", "Accept" => "application/json", "X-Auth-Token" => "Token", "X-Object-Meta-Test" => "Test" }).to_return(:status => 201, :body => "", :headers => {})
|
134
|
+
stub_request(:put, "https://example.com/v1/AUTH_account/container/object").with(:body => "data", :headers => { "Transfer-Encoding" => "chunked", "Content-Type" => "application/octet-stream", "Accept" => "application/json", "X-Auth-Token" => "Token", "X-Object-Meta-Test" => "Test" }).to_return(:status => 201, :body => "", :headers => {})
|
135
135
|
|
136
136
|
assert_equal 201, @swift_client.put_object("object", "data", "container", "X-Object-Meta-Test" => "Test").code
|
137
137
|
end
|
138
138
|
|
139
|
+
def test_put_object_without_mime_type
|
140
|
+
stub_request(:put, "https://example.com/v1/AUTH_account/container/object.jpg").with(:body => "data", :headers => { "Transfer-Encoding" => "chunked", "Accept" => "application/json", "Content-Type" => "image/jpeg", "X-Auth-Token" => "Token", "X-Object-Meta-Test" => "Test" }).to_return(:status => 201, :body => "", :headers => {})
|
141
|
+
|
142
|
+
assert_equal 201, @swift_client.put_object("object.jpg", "data", "container", "X-Object-Meta-Test" => "Test").code
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_put_object_with_mime_type
|
146
|
+
stub_request(:put, "https://example.com/v1/AUTH_account/container/object.jpg").with(:body => "data", :headers => { "Transfer-Encoding" => "chunked", "Accept" => "application/json", "Content-Type" => "content/type", "X-Auth-Token" => "Token", "X-Object-Meta-Test" => "Test" }).to_return(:status => 201, :body => "", :headers => {})
|
147
|
+
|
148
|
+
assert_equal 201, @swift_client.put_object("object.jpg", "data", "container", "X-Object-Meta-Test" => "Test", "Content-Type" => "content/type").code
|
149
|
+
end
|
150
|
+
|
139
151
|
def test_put_object_with_io
|
140
152
|
stub_request(:put, "https://example.com/v1/AUTH_account/container/object").with(:body => "data", :headers => { "Transfer-Encoding" => "chunked", "Accept" => "application/json", "X-Auth-Token" => "Token", "X-Object-Meta-Test" => "Test" }).to_return(:status => 201, :body => "", :headers => {})
|
141
153
|
|
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.8
|
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: 2015-
|
12
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|