module Aliyun::ESS::Connection::Management::ClassMethods

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

Public Instance Methods

connected?() click to toggle source

Returns true if a connection has been made yet.

# File lib/aliyun/ess/connection.rb, line 174
def connected?
  !connections.empty?
end
connection() click to toggle source

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.

# File lib/aliyun/ess/connection.rb, line 165
def connection
  if connected?
    connections[connection_name] || default_connection
  else
    raise NoConnectionEstablished
  end
end
disconnect(name = connection_name) click to toggle source

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

# File lib/aliyun/ess/connection.rb, line 180
def disconnect(name = connection_name)
  name       = default_connection unless connections.has_key?(name)
  connection = connections[name]
  connection.http.finish if connection.persistent?
  connections.delete(name)
end
disconnect!() click to toggle source

Clears all connections, from all classes, with prejudice.

# File lib/aliyun/ess/connection.rb, line 188
def disconnect!
  connections.each_key {|connection| disconnect(connection)}
end
establish_connection!(options = {}) click to toggle source

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

Aliyun::ESS::Base.establish_connection!(:access_key_id => '...', :secret_access_key => '...')

Required arguments

  • :access_key_id - The access key id for your OSS account. Provided by Aliyun.

  • :secret_access_key - The secret access key for your OSS account. Provided by Aliyun.

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 oss.aliyuncs.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.

  • :persistent - Whether to use a persistent connection to the server. Having this on provides around a two fold

performance increase but for long running processes some firewalls may find the long lived connection suspicious and close the connection. If you run into connection errors, try setting :persistent to false. Defaults to false.

# File lib/aliyun/ess/connection.rb, line 154
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

Private Instance Methods

connection_name() click to toggle source
# File lib/aliyun/ess/connection.rb, line 193
def connection_name
  name
end
default_connection() click to toggle source
# File lib/aliyun/ess/connection.rb, line 201
def default_connection
  connections[default_connection_name]
end
default_connection_name() click to toggle source
# File lib/aliyun/ess/connection.rb, line 197
def default_connection_name
  'Aliyun::ESS::Base'
end