Class: AWS::S3::Connection
- Inherits:
-
Object
- Object
- AWS::S3::Connection
- Defined in:
- lib/aws/s3/connection.rb
Overview
:nodoc:
Defined Under Namespace
Modules: Management Classes: Options
Instance Attribute Summary collapse
-
#access_key_id ⇒ Object
readonly
Returns the value of attribute access_key_id.
-
#http ⇒ Object
readonly
Returns the value of attribute http.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#secret_access_key ⇒ Object
readonly
Returns the value of attribute secret_access_key.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Connection
constructor
Creates a new connection.
- #persistent? ⇒ Boolean
- #protocol(options = {}) ⇒ Object
- #request(verb, path, headers = {}, body = nil, &block) ⇒ Object
- #subdomain ⇒ Object
- #url_for(path, options = {}) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Connection
Creates a new connection. Connections make the actual requests to S3, though these requests are usually called from subclasses of Base.
For details on establishing connections, check the Connection::Management::ClassMethods.
21 22 23 24 |
# File 'lib/aws/s3/connection.rb', line 21 def initialize( = {}) @options = Options.new() connect end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object (private)
109 110 111 |
# File 'lib/aws/s3/connection.rb', line 109 def method_missing(method, *args, &block) [method] || super end |
Instance Attribute Details
#access_key_id ⇒ Object (readonly)
Returns the value of attribute access_key_id.
15 16 17 |
# File 'lib/aws/s3/connection.rb', line 15 def access_key_id @access_key_id end |
#http ⇒ Object (readonly)
Returns the value of attribute http.
15 16 17 |
# File 'lib/aws/s3/connection.rb', line 15 def http @http end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
15 16 17 |
# File 'lib/aws/s3/connection.rb', line 15 def @options end |
#secret_access_key ⇒ Object (readonly)
Returns the value of attribute secret_access_key.
15 16 17 |
# File 'lib/aws/s3/connection.rb', line 15 def secret_access_key @secret_access_key end |
Class Method Details
.connect(options = {}) ⇒ Object
5 6 7 |
# File 'lib/aws/s3/connection.rb', line 5 def connect( = {}) new() end |
.prepare_path(path) ⇒ Object
9 10 11 12 |
# File 'lib/aws/s3/connection.rb', line 9 def prepare_path(path) path = path.remove_extended unless path.utf8? URI.escape(path) end |
Instance Method Details
#persistent? ⇒ Boolean
63 64 65 |
# File 'lib/aws/s3/connection.rb', line 63 def persistent? [:persistent] end |
#protocol(options = {}) ⇒ Object
67 68 69 |
# File 'lib/aws/s3/connection.rb', line 67 def protocol( = {}) ([:use_ssl] || http.use_ssl?) ? 'https://' : 'http://' end |
#request(verb, path, headers = {}, body = nil, &block) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/aws/s3/connection.rb', line 26 def request(verb, path, headers = {}, body = nil, &block) requester = Proc.new do path = self.class.prepare_path(path) request = request_method(verb).new(path, headers) ensure_content_type!(request) add_user_agent!(request) authenticate!(request) if body if body.respond_to?(:read) request.body_stream = body request.content_length = body.respond_to?(:lstat) ? body.lstat.size : body.size else request.body = body end end http.request(request, &block) end if persistent? http.start unless http.started? requester.call else http.start(&requester) end end |
#subdomain ⇒ Object
59 60 61 |
# File 'lib/aws/s3/connection.rb', line 59 def subdomain http.address[/^([^.]+).#{DEFAULT_HOST}$/, 1] end |
#url_for(path, options = {}) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/aws/s3/connection.rb', line 52 def url_for(path, = {}) path = self.class.prepare_path(path) request = request_method(:get).new(path, {}) query_string = query_string_authentication(request, ) "#{protocol()}#{http.address}#{path}?#{query_string}" end |