open-uri-s3 1.0.3 → 1.1.0
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/.rspec +1 -0
- data/Gemfile +2 -2
- data/README.md +10 -1
- data/VERSION +1 -1
- data/lib/open-uri-s3.rb +8 -3
- data/open-uri-s3.gemspec +10 -11
- data/spec/lib/open-uri-s3_spec.rb +21 -0
- metadata +7 -8
- data/spec/open-uri-s3_spec.rb +0 -7
- data/spec/spec_helper.rb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eae0d4c08066f1be7dd933722005605ef95719c8
|
4
|
+
data.tar.gz: ae125e095656d6d966bcbcabba34da7302d3dfc1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44689a66321b6b5b09e2bc3e782c0a04115862bc1299732dd91bbd2e40e95a1a7acae216351001663abd1788d621da3e0f7aba3c8b6f2b07cae243da22f3e28f
|
7
|
+
data.tar.gz: fe9a45ffc34f80734d388374d9c9bc8c5b6d75a99746d20620e46d15f3502e06d0d780c77ba3e144a8d416b6da621ba74ccb985e38e2a9f2f829a486c3e79fea
|
data/.rspec
CHANGED
data/Gemfile
CHANGED
@@ -2,12 +2,12 @@ source "http://rubygems.org"
|
|
2
2
|
# Add dependencies required to use your gem here.
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
|
-
gem 'aws-sdk'
|
5
|
+
gem 'aws-sdk-v1'
|
6
6
|
|
7
7
|
# Add dependencies to develop your gem here.
|
8
8
|
# Include everything needed to run rake, tests, features, etc.
|
9
9
|
group :development do
|
10
|
-
gem "rspec", "~> 2.
|
10
|
+
gem "rspec", "~> 3.2.0"
|
11
11
|
gem "yard", "~> 0.7"
|
12
12
|
gem "rdoc", "~> 3.12"
|
13
13
|
gem "bundler", "~> 1.0"
|
data/README.md
CHANGED
@@ -12,6 +12,12 @@ Reading objects:
|
|
12
12
|
open('s3://my.bucket/public/hello') # returns AWS::S3::S3Object (quacks like IO)
|
13
13
|
```
|
14
14
|
|
15
|
+
or a safer option (see [this post][open-uri-dangers] on the dangers of using open-uri with user input)
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
URI('s3://my.bucket/public/hello').read
|
19
|
+
```
|
20
|
+
|
15
21
|
Writing objects:
|
16
22
|
|
17
23
|
```ruby
|
@@ -19,7 +25,7 @@ open('s3://my.bucket/public/hello', 'w'){|f| f.write 'Hello world!'}
|
|
19
25
|
```
|
20
26
|
|
21
27
|
## Contributing to open-uri-s3
|
22
|
-
|
28
|
+
|
23
29
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
24
30
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
25
31
|
* Fork the project.
|
@@ -32,3 +38,6 @@ open('s3://my.bucket/public/hello', 'w'){|f| f.write 'Hello world!'}
|
|
32
38
|
|
33
39
|
Copyright (c) 2013 Erik Terpstra. See LICENSE.txt for
|
34
40
|
further details.
|
41
|
+
|
42
|
+
[](https://www.omniref.com/ruby/gems/open-uri-s3)
|
43
|
+
[open-uri-dangers]: http://sakurity.com/blog/2015/02/28/openuri.html
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/lib/open-uri-s3.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
-
require 'aws-sdk'
|
1
|
+
require 'aws-sdk-v1'
|
2
2
|
require 'open-uri'
|
3
3
|
require 'uri'
|
4
4
|
|
5
5
|
module URI
|
6
6
|
class S3 < Generic
|
7
|
+
|
7
8
|
# @return [AWS::S3::S3Object] S3 object (quacks like IO)
|
8
9
|
def open(*args)
|
9
|
-
s3 = AWS::S3.new
|
10
|
+
s3 = ::AWS::S3.new
|
10
11
|
bucket = s3.buckets[self.hostname]
|
11
12
|
if bucket.location_constraint
|
12
|
-
s3 = AWS::S3.new(s3_endpoint: "s3-#{bucket.location_constraint}.amazonaws.com")
|
13
|
+
s3 = ::AWS::S3.new(s3_endpoint: "s3-#{bucket.location_constraint}.amazonaws.com")
|
13
14
|
bucket = s3.buckets[self.hostname]
|
14
15
|
end
|
15
16
|
|
@@ -22,6 +23,10 @@ module URI
|
|
22
23
|
|
23
24
|
object
|
24
25
|
end
|
26
|
+
|
27
|
+
def read
|
28
|
+
open(to_s).read
|
29
|
+
end
|
25
30
|
end
|
26
31
|
|
27
32
|
@@schemes['S3'] = S3
|
data/open-uri-s3.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "open-uri-s3"
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Erik Terpstra"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2015-03-06"
|
13
13
|
s.description = "AWS S3 protocol support for open-uri"
|
14
14
|
s.email = "erterpstra@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -26,36 +26,35 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"lib/open-uri-s3.rb",
|
28
28
|
"open-uri-s3.gemspec",
|
29
|
-
"spec/open-uri-s3_spec.rb"
|
30
|
-
"spec/spec_helper.rb"
|
29
|
+
"spec/lib/open-uri-s3_spec.rb"
|
31
30
|
]
|
32
31
|
s.homepage = "http://github.com/eterps/open-uri-s3"
|
33
32
|
s.licenses = ["MIT"]
|
34
33
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = "2.0.
|
34
|
+
s.rubygems_version = "2.0.14"
|
36
35
|
s.summary = "AWS S3 protocol support for open-uri"
|
37
36
|
|
38
37
|
if s.respond_to? :specification_version then
|
39
38
|
s.specification_version = 4
|
40
39
|
|
41
40
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
-
s.add_runtime_dependency(%q<aws-sdk>, [">= 0"])
|
43
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.
|
41
|
+
s.add_runtime_dependency(%q<aws-sdk-v1>, [">= 0"])
|
42
|
+
s.add_development_dependency(%q<rspec>, ["~> 3.2.0"])
|
44
43
|
s.add_development_dependency(%q<yard>, ["~> 0.7"])
|
45
44
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
46
45
|
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
47
46
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.8"])
|
48
47
|
else
|
49
|
-
s.add_dependency(%q<aws-sdk>, [">= 0"])
|
50
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
48
|
+
s.add_dependency(%q<aws-sdk-v1>, [">= 0"])
|
49
|
+
s.add_dependency(%q<rspec>, ["~> 3.2.0"])
|
51
50
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
52
51
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
53
52
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
54
53
|
s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
|
55
54
|
end
|
56
55
|
else
|
57
|
-
s.add_dependency(%q<aws-sdk>, [">= 0"])
|
58
|
-
s.add_dependency(%q<rspec>, ["~> 2.
|
56
|
+
s.add_dependency(%q<aws-sdk-v1>, [">= 0"])
|
57
|
+
s.add_dependency(%q<rspec>, ["~> 3.2.0"])
|
59
58
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
60
59
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
61
60
|
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'open-uri-s3'
|
2
|
+
|
3
|
+
describe URI::S3 do
|
4
|
+
|
5
|
+
let(:uri) { 's3://some-bucket/key/to/object'}
|
6
|
+
let(:s3) { instance_double('S3', buckets: buckets) }
|
7
|
+
let(:buckets) { {'some-bucket' => bucket} }
|
8
|
+
let(:bucket) { double("bucket", objects: objects, location_constraint: false) }
|
9
|
+
let(:objects) { {'key/to/object' => object} }
|
10
|
+
let(:object) { double('object', read: 'contents') }
|
11
|
+
|
12
|
+
before do
|
13
|
+
allow(AWS::S3).to receive(:new).and_return(s3)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#read" do
|
17
|
+
it "reads the object" do
|
18
|
+
expect(URI(uri).read).to eq 'contents'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open-uri-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Terpstra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: aws-sdk
|
14
|
+
name: aws-sdk-v1
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: 3.2.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: 3.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: yard
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,8 +111,7 @@ files:
|
|
111
111
|
- VERSION
|
112
112
|
- lib/open-uri-s3.rb
|
113
113
|
- open-uri-s3.gemspec
|
114
|
-
- spec/open-uri-s3_spec.rb
|
115
|
-
- spec/spec_helper.rb
|
114
|
+
- spec/lib/open-uri-s3_spec.rb
|
116
115
|
homepage: http://github.com/eterps/open-uri-s3
|
117
116
|
licenses:
|
118
117
|
- MIT
|
@@ -133,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
132
|
version: '0'
|
134
133
|
requirements: []
|
135
134
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.0.
|
135
|
+
rubygems_version: 2.0.14
|
137
136
|
signing_key:
|
138
137
|
specification_version: 4
|
139
138
|
summary: AWS S3 protocol support for open-uri
|
data/spec/open-uri-s3_spec.rb
DELETED
data/spec/spec_helper.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
-
require 'rspec'
|
4
|
-
require 'open-uri-s3'
|
5
|
-
|
6
|
-
# Requires supporting files with custom matchers and macros, etc,
|
7
|
-
# in ./support/ and its subdirectories.
|
8
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
-
|
10
|
-
RSpec.configure do |config|
|
11
|
-
|
12
|
-
end
|