awsraw 1.0.0.alpha.2 → 1.0.0.alpha.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 +4 -4
- data/.gitignore +5 -4
- data/.travis.yml +1 -0
- data/awsraw.gemspec +2 -2
- data/build +5 -0
- data/lib/awsraw/s3/faraday_middleware.rb +12 -2
- data/lib/awsraw/s3/signature.rb +1 -1
- data/lib/awsraw/version.rb +1 -1
- data/spec/s3/faraday_middleware_spec.rb +2 -2
- data/spec/s3/signature_spec.rb +11 -3
- metadata +22 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27534ba6f94fa8bd5456bc693dc5505bcf30840e
|
4
|
+
data.tar.gz: cacd2d4029079c1c2a71b611d050ff00d5d878ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eccdf2a5654dc5fdaf984a2745bc39e5795177e23ff19bc6bda8108d792dfe648c2d854aec9fbb4e3ba233a045ebcbf3e842700a7cdd6766baeb33b780a6bf78
|
7
|
+
data.tar.gz: 8e4ab1687c3445a1289acb7540ca576243a37e127328fb9150d73ddebdafa066b01a8bf6648e11649db2f85d8d6b3756be83af65616dd0d35197adb53a34160b
|
data/.gitignore
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Gemfile.lock
|
4
|
-
pkg/*
|
1
|
+
/*.gem
|
2
|
+
/.bundle
|
3
|
+
/Gemfile.lock
|
4
|
+
/pkg/*
|
5
|
+
/vendor
|
data/.travis.yml
CHANGED
data/awsraw.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# specify any dependencies here; for example:
|
23
23
|
s.add_development_dependency "rake"
|
24
|
-
s.add_development_dependency "rspec", "~>
|
24
|
+
s.add_development_dependency "rspec", "~> 3.0.0"
|
25
25
|
s.add_runtime_dependency "finer_struct", "~> 0.0.5"
|
26
|
-
s.add_runtime_dependency "faraday", "~> 0.
|
26
|
+
s.add_runtime_dependency "faraday", "~> 0.9.0"
|
27
27
|
end
|
data/build
ADDED
@@ -19,9 +19,20 @@ module AWSRaw
|
|
19
19
|
raise AWSRaw::Error, "Can't make a request with a body but no Content-Type header"
|
20
20
|
end
|
21
21
|
|
22
|
+
add_missing_headers(env)
|
23
|
+
sign_request(env)
|
24
|
+
|
25
|
+
@app.call(env)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def add_missing_headers(env)
|
22
31
|
env[:request_headers]['Date'] ||= Time.now.httpdate
|
23
32
|
env[:request_headers]['Content-MD5'] ||= ContentMD5Header.generate_content_md5(env[:body]) if env[:body]
|
33
|
+
end
|
24
34
|
|
35
|
+
def sign_request(env)
|
25
36
|
string_to_sign = StringToSign.string_to_sign(
|
26
37
|
:method => env[:method].to_s.upcase,
|
27
38
|
:uri => env[:url],
|
@@ -32,9 +43,8 @@ module AWSRaw
|
|
32
43
|
)
|
33
44
|
|
34
45
|
env[:request_headers]['Authorization'] = Signature.authorization_header(string_to_sign, @credentials)
|
35
|
-
|
36
|
-
@app.call(env)
|
37
46
|
end
|
47
|
+
|
38
48
|
end
|
39
49
|
end
|
40
50
|
end
|
data/lib/awsraw/s3/signature.rb
CHANGED
data/lib/awsraw/version.rb
CHANGED
@@ -37,7 +37,7 @@ describe AWSRaw::S3::FaradayMiddleware do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "sets the Date header if there isn't one" do
|
40
|
-
Time.
|
40
|
+
allow(Time).to receive(:now).and_return(time) # Freeze time for the duration of the test.
|
41
41
|
|
42
42
|
env = {
|
43
43
|
:method => :get,
|
@@ -103,7 +103,7 @@ describe AWSRaw::S3::FaradayMiddleware do
|
|
103
103
|
:request_headers => { }
|
104
104
|
}
|
105
105
|
|
106
|
-
app.
|
106
|
+
expect(app).to receive(:call).with(env)
|
107
107
|
|
108
108
|
subject.call(env)
|
109
109
|
end
|
data/spec/s3/signature_spec.rb
CHANGED
@@ -11,6 +11,7 @@ describe AWSRaw::S3::Signature do
|
|
11
11
|
)
|
12
12
|
end
|
13
13
|
|
14
|
+
|
14
15
|
context ".signature" do
|
15
16
|
context "AWS example tests:" do
|
16
17
|
# Examples are pulled from the AWS docs:
|
@@ -90,14 +91,21 @@ EOF
|
|
90
91
|
|
91
92
|
let(:signature) { "0RavWzkygo6QX9caELEqKi9kDbU=" }
|
92
93
|
|
94
|
+
# Note: These credentials are (I think) from an old version of the AWS
|
95
|
+
# examples. The credentials currently in the docs don't produce the
|
96
|
+
# example signature. I suspect AWS haven't correctly updated their docs.
|
97
|
+
let(:credentials) do
|
98
|
+
OpenStruct.new(
|
99
|
+
:access_key_id => "0PN5J17HBGZHT7JJ3X82",
|
100
|
+
:secret_access_key => "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o"
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
93
104
|
it ".encode_form_policy correctly encodes a policy" do
|
94
105
|
expect(subject.encode_form_policy(policy_json)).to eq(policy_base64)
|
95
106
|
end
|
96
107
|
|
97
|
-
# Note: This test fails. I'm pretty sure the example in the AWS docs is
|
98
|
-
# wrong, but I'm leaving it failing until I can confirm that.
|
99
108
|
it ".form_signature correctly signs a policy" do
|
100
|
-
pending "Figure out which is wrong: the AWS examples or the code"
|
101
109
|
expect(subject.form_signature(policy_base64, credentials)).to eq(signature)
|
102
110
|
end
|
103
111
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awsraw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Yandell
|
@@ -10,64 +10,64 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-08-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '0'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rspec
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 3.0.0
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 3.0.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: finer_struct
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ~>
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 0.0.5
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - ~>
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 0.0.5
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: faraday
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - ~>
|
61
|
+
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 0.
|
63
|
+
version: 0.9.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- - ~>
|
68
|
+
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 0.
|
70
|
+
version: 0.9.0
|
71
71
|
description: A client for Amazon Web Services in the style of FlickRaw
|
72
72
|
email:
|
73
73
|
- pete@notahat.com
|
@@ -77,14 +77,15 @@ executables: []
|
|
77
77
|
extensions: []
|
78
78
|
extra_rdoc_files: []
|
79
79
|
files:
|
80
|
-
- .gitignore
|
81
|
-
- .rspec
|
82
|
-
- .travis.yml
|
80
|
+
- ".gitignore"
|
81
|
+
- ".rspec"
|
82
|
+
- ".travis.yml"
|
83
83
|
- Gemfile
|
84
84
|
- LICENSE
|
85
85
|
- README.md
|
86
86
|
- Rakefile
|
87
87
|
- awsraw.gemspec
|
88
|
+
- build
|
88
89
|
- lib/awsraw.rb
|
89
90
|
- lib/awsraw/credentials.rb
|
90
91
|
- lib/awsraw/error.rb
|
@@ -112,17 +113,17 @@ require_paths:
|
|
112
113
|
- lib
|
113
114
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
115
|
requirements:
|
115
|
-
- -
|
116
|
+
- - ">="
|
116
117
|
- !ruby/object:Gem::Version
|
117
118
|
version: '0'
|
118
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
120
|
requirements:
|
120
|
-
- -
|
121
|
+
- - ">"
|
121
122
|
- !ruby/object:Gem::Version
|
122
123
|
version: 1.3.1
|
123
124
|
requirements: []
|
124
125
|
rubyforge_project: awsraw
|
125
|
-
rubygems_version: 2.
|
126
|
+
rubygems_version: 2.2.2
|
126
127
|
signing_key:
|
127
128
|
specification_version: 4
|
128
129
|
summary: Minimal AWS client
|
@@ -133,3 +134,4 @@ test_files:
|
|
133
134
|
- spec/s3/query_string_signer_spec.rb
|
134
135
|
- spec/s3/signature_spec.rb
|
135
136
|
- spec/s3/string_to_sign_spec.rb
|
137
|
+
has_rdoc:
|