fog-aws 0.0.5 → 0.0.6

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: ca1a6ae56e8751aed4350b2225f4aeb46912a818
4
- data.tar.gz: d41717a17834f5688d29742ebd3afd0a130fc2d0
3
+ metadata.gz: 125c645ebeed2b422d66404b2fcf3e23730fe5ba
4
+ data.tar.gz: 7fb02263e371b88b51e57127c8b4bda7cdfb124f
5
5
  SHA512:
6
- metadata.gz: 75768f723b22b5486c1e0b80580fe9061aa01f19987faaebf7ef3f4ece18781f3058d91b5b08bff6d933a799ba99e57f6f56062a487fcaabc1ffd38a8cc600f9
7
- data.tar.gz: 2b68fab2e42a5cf5f975c3052df477dfcc0dfa7a3b08fb9a1c7466211b549f3be4350183615afb1d0fdb9762f97a516285018d7562323da6db8a0fcdea69088b
6
+ metadata.gz: c7a3177a84c1f09c5ef485dd049fe0fba1e00c24860474f8739ba43d9c5d84023d52eee9449c03115d6eaea516cab9fea692e2c800d652b16d034f118c86cd4e
7
+ data.tar.gz: 477129fcdaa3a34f10c5a394ef007c723ffb245e3b94d5e50a9ed8132d744141bdba62e680c47cbaf5033df46f9cce1a82b59b500376b1084d0a8b8b6655d413
@@ -0,0 +1,18 @@
1
+ ## Getting Involved
2
+
3
+ New contributors are always welcome, when it doubt please ask questions. We strive to be an open and welcoming community. Please be nice to one another.
4
+
5
+ ### Coding
6
+
7
+ * Pick a task:
8
+ * Offer feedback on open [pull requests](https://github.com/fog/fog/pulls).
9
+ * Review open [issues](https://github.com/fog/fog/issues) for things to help on.
10
+ * [Create an issue](https://github.com/fog/fog/issues/new) to start a discussion on additions or features.
11
+ * Fork the project, add your changes and tests to cover them in a topic branch.
12
+ * Commit your changes and rebase against `fog/fog` to ensure everything is up to date.
13
+ * [Submit a pull request](https://github.com/fog/fog/compare/).
14
+
15
+ ### Non-Coding
16
+
17
+ * Offer feedback on open [issues](https://github.com/fog/fog/issues).
18
+ * Organize or volunteer at events.
@@ -0,0 +1,5 @@
1
+ * Frederick Cheung <frederick.cheung@gmail.com>
2
+ * Josh Lane <lanej@users.noreply.github.com>
3
+ * Josh Lane <me@joshualane.com>
4
+ * Wesley Beary <geemus@gmail.com>
5
+ * geemus <geemus@gmail.com>
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2015 [CONTRIBUTORS.md](https://github.com/fog/fog/blob/master/CONTRIBUTORS.md)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -104,14 +104,14 @@ DATA
104
104
  def canonical_headers(headers)
105
105
  canonical_headers = ''
106
106
 
107
- for key in headers.keys.sort_by {|k| k.to_s}
107
+ for key in headers.keys.sort_by {|k| k.to_s.downcase}
108
108
  canonical_headers << "#{key.to_s.downcase}:#{headers[key].to_s.strip}\n"
109
109
  end
110
110
  canonical_headers
111
111
  end
112
112
 
113
113
  def signed_headers(headers)
114
- headers.keys.map {|key| key.to_s}.sort.map {|key| key.downcase}.join(';')
114
+ headers.keys.map {|key| key.to_s.downcase}.sort.join(';')
115
115
  end
116
116
 
117
117
  end
@@ -550,12 +550,15 @@ module Fog
550
550
  new_params[:host] = URI.parse(headers['Location']).host
551
551
  else
552
552
  body = error.response.is_a?(Hash) ? error.response[:body] : error.response.body
553
+ # some errors provide info indirectly
553
554
  new_params[:bucket_name] = %r{<Bucket>([^<]*)</Bucket>}.match(body).captures.first
554
555
  new_params[:host] = %r{<Endpoint>([^<]*)</Endpoint>}.match(body).captures.first
556
+ # some errors provide it directly
557
+ @new_region = %r{<Region>([^<]*)</Region>}.match(body).captures.first
555
558
  end
556
559
  Fog::Logger.warning("fog: followed redirect to #{host}, connecting to the matching region will be more performant")
557
560
  original_region, original_signer = @region, @signer
558
- @region = case new_params[:host]
561
+ @region = @new_region || case new_params[:host]
559
562
  when 's3.amazonaws.com', 's3-external-1.amazonaws.com'
560
563
  DEFAULT_REGION
561
564
  else
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
@@ -13,6 +13,12 @@ Shindo.tests('AWS | signaturev4', ['aws']) do
13
13
  end
14
14
  end
15
15
 
16
+ tests('get-headers-mixed-case-headers') do
17
+ returns(@signer.sign({:headers => {'HOST' => 'host.foo.com', 'date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '/'}, @now)) do
18
+ 'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=b27ccfbfa7df52a200ff74193ca6e32d4b48b8856fab7ebf1c595d0670a7e470'
19
+ end
20
+ end
21
+
16
22
  tests('get-vanilla-query-order-key with symbol keys') do
17
23
  returns(@signer.sign({:query => {:'a' => 'foo', :'b' => 'foo'}, :headers => {:'Host' => 'host.foo.com', 'Date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '/'}, @now)) do
18
24
  'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=0dc122f3b28b831ab48ba65cb47300de53fbe91b577fe113edac383730254a3b'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-01-06 00:00:00.000000000 Z
12
+ date: 2015-01-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -121,8 +121,10 @@ extra_rdoc_files: []
121
121
  files:
122
122
  - ".gitignore"
123
123
  - ".travis.yml"
124
+ - CONTRIBUTING.md
125
+ - CONTRIBUTORS.md
124
126
  - Gemfile
125
- - LICENSE.txt
127
+ - LICENSE.md
126
128
  - README.md
127
129
  - Rakefile
128
130
  - fog-aws.gemspec
@@ -1,22 +0,0 @@
1
- Copyright (c) 2014 Josh Lane
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.