Module: AWS::S3::Connection::Management::ClassMethods

Defined in:
lib/aws/s3/connection.rb

Overview

Manage the creation and destruction of connections for AWS::S3::Base and its subclasses. Connections are created with establish_connection!.

Instance Method Summary collapse

Instance Method Details

#connected?Boolean

Returns true if a connection has been made yet.

Returns:

  • (Boolean)


144
145
146
# File 'lib/aws/s3/connection.rb', line 144

def connected?
  !connections.empty?
end

#connectionObject

Returns the connection for the current class, or Base’s default connection if the current class does not have its own connection.

If not connection has been established yet, NoConnectionEstablished will be raised.



135
136
137
138
139
140
141
# File 'lib/aws/s3/connection.rb', line 135

def connection
  if connected?
    connections[connection_name] || default_connection
  else
    raise NoConnectionEstablished
  end
end

#disconnectObject

Removes the connection for the current class. If there is no connection for the current class, the default connection will be removed.



150
151
152
# File 'lib/aws/s3/connection.rb', line 150

def disconnect
  connections.delete(connection_name) || connections.delete(default_connection)
end

#disconnect!Object

Clears all connections, from all classes, with prejudice.



155
156
157
# File 'lib/aws/s3/connection.rb', line 155

def disconnect!
  connections.clear
end

#establish_connection!(options = {}) ⇒ Object

Creates a new connection with which to make requests to the S3 servers for the calling class.

AWS::S3::Base.establish_connection!(:access_key_id => '...', :secret_access_key => '...')

You can set connections for every subclass of AWS::S3::Base. Once the initial connection is made on Base, all subsequent connections will inherit whatever values you don’t specify explictly. This allows you to customize details of the connection, such as what server the requests are made to, by just specifying one option.

AWS::S3::Bucket.established_connection!(:use_ssl => true)

The Bucket connection would inherit the :access_key_id and the :secret_access_key from Base’s connection. Unlike the Base connection, all Bucket requests would be made over SSL.

Required arguments

  • :access_key_id - The access key id for your S3 account. Provided by Amazon.

  • :secret_access_key - The secret access key for your S3 account. Provided by Amazon.

If any of these required arguments is missing, a MissingAccessKey exception will be raised.

Optional arguments

  • :server - The server to make requests to. You can use this to specify your bucket in the subdomain,

or your own domain’s cname if you are using virtual hosted buckets. Defaults to s3.amazonaws.com.

  • :port - The port to the requests should be made on. Defaults to 80 or 443 if the :use_ssl

argument is set.

  • :use_ssl - Whether requests should be made over SSL. If set to true, the :port argument

will be implicitly set to 443, unless specified otherwise. Defaults to false.



124
125
126
127
128
129
# File 'lib/aws/s3/connection.rb', line 124

def establish_connection!(options = {})
  # After you've already established the default connection, just specify 
  # the difference for subsequent connections
  options = default_connection.options.merge(options) if connected?
  connections[connection_name] = Connection.connect(options)
end