uber-s3 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  require 'net/http'
2
+ require 'net/http/persistent'
2
3
 
3
4
  module UberS3::Connection
4
5
  class NetHttp < Adapter
@@ -10,12 +11,23 @@ module UberS3::Connection
10
11
  end
11
12
 
12
13
  uri = URI.parse(url)
13
- http = Net::HTTP.new(uri.host, uri.port)
14
+
15
+ if persistent
16
+ http = Net::HTTP::Persistent.new("#{access_key}:#{client.bucket}")
17
+ else
18
+ http = Net::HTTP.new(uri.host, uri.port)
19
+ end
14
20
 
15
21
  req_klass = instance_eval("Net::HTTP::"+verb.to_s.capitalize)
16
22
  req = req_klass.new(uri.to_s, headers)
23
+
24
+ req.body = body if !body.nil? && !body.empty?
17
25
 
18
- r = http.request(req, body)
26
+ if persistent
27
+ r = http.request(uri, req)
28
+ else
29
+ r = http.request(req)
30
+ end
19
31
 
20
32
  # Auto-decode any gzipped objects
21
33
  if verb == :get && r.header['content-encoding'] == 'gzip'
@@ -23,7 +23,7 @@ class UberS3
23
23
  self.client = client
24
24
  self.access_key = options[:access_key]
25
25
  self.secret_access_key = options[:secret_access_key]
26
- self.persistent = options[:persistent] || true
26
+ self.persistent = (options[:persistent].nil? ? true : options[:persistent])
27
27
  self.defaults = options[:defaults] || {}
28
28
  end
29
29
 
@@ -36,7 +36,7 @@ class UberS3
36
36
  # Default headers
37
37
  headers['Date'] = Time.now.httpdate if !headers.keys.include?('Date')
38
38
  headers['User-Agent'] ||= "UberS3 v#{UberS3::VERSION}"
39
- # headers['Connection'] = (persistent ? 'keep-alive' : 'close')
39
+ headers['Connection'] = (persistent ? 'keep-alive' : 'close')
40
40
 
41
41
  if body
42
42
  headers['Content-Length'] ||= body.bytesize.to_s
@@ -1,3 +1,3 @@
1
1
  class UberS3
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uber-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-11 00:00:00.000000000Z
12
+ date: 2012-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mime-types
16
- requirement: &70136054186780 !ruby/object:Gem::Requirement
16
+ requirement: &70223953646180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '1.17'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70136054186780
24
+ version_requirements: *70223953646180
25
+ - !ruby/object:Gem::Dependency
26
+ name: net-http-persistent
27
+ requirement: &70223953645120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '2.5'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70223953645120
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: rake
27
- requirement: &70136054186160 !ruby/object:Gem::Requirement
38
+ requirement: &70223953644560 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ! '>='
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: '0'
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70136054186160
46
+ version_requirements: *70223953644560
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rspec
38
- requirement: &70136054185000 !ruby/object:Gem::Requirement
49
+ requirement: &70223953643000 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,7 +54,7 @@ dependencies:
43
54
  version: 2.7.0
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70136054185000
57
+ version_requirements: *70223953643000
47
58
  description: A simple & very fast S3 client supporting sync / async HTTP adapters
48
59
  email:
49
60
  - peter@nulayer.com
@@ -93,9 +104,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
104
  version: 1.3.6
94
105
  requirements: []
95
106
  rubyforge_project:
96
- rubygems_version: 1.8.11
107
+ rubygems_version: 1.8.17
97
108
  signing_key:
98
109
  specification_version: 3
99
110
  summary: A simple & very fast S3 client supporting sync / async HTTP adapters
100
111
  test_files: []
101
- has_rdoc: