Method: RightAws::S3Interface#initialize

Defined in:
lib/s3/right_s3_interface.rb

#initialize(aws_access_key_id, aws_secret_access_key, params = {}) ⇒ S3Interface

Creates new RightS3 instance.

s3 = RightAws::S3Interface.new('1E3GDYEOGFJPIT7XXXXXX','hgTHt68JY07JKUY08ftHYtERkjgtfERn57XXXXXX', {:multi_thread => true, :logger => Logger.new('/tmp/x.log')}) #=> #<RightS3:0xb7b3c27c>

Params is a hash:

{:server       => 's3.amazonaws.com'   # Amazon service host: 's3.amazonaws.com'(default)
 :port         => 443                  # Amazon service port: 80 or 443(default)
 :protocol     => 'https'              # Amazon service protocol: 'http' or 'https'(default)
 :multi_thread => true|false           # Multi-threaded (connection per each thread): true or false(default)
 :logger       => Logger Object}       # Logger instance: logs to STDOUT if omitted }

Raises:



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/s3/right_s3_interface.rb', line 96

def initialize(aws_access_key_id, aws_secret_access_key, params={})
  @params = params
  raise AwsError.new("AWS access keys are required to operate on S3") \
    if aws_access_key_id.blank? || aws_secret_access_key.blank?

  # TODO TRB 6/19/07 - keys, basic params, and logger are all 
  # candidates to break out into a helper class common to all 
  # service gems.  Stick the helper in right_awsbase
  @aws_access_key_id     = aws_access_key_id
  @aws_secret_access_key = aws_secret_access_key
    # params
  @params[:server]       ||= DEFAULT_HOST
  @params[:port]         ||= DEFAULT_PORT
  @params[:protocol]     ||= DEFAULT_PROTOCOL
  @params[:multi_thread] ||= defined?(AWS_DAEMON)
    # set logger
  @logger = @params[:logger]
  @logger = RAILS_DEFAULT_LOGGER if !@logger && defined?(RAILS_DEFAULT_LOGGER)
  @logger = Logger.new(STDOUT)   if !@logger
  @logger.info "New #{self.class.name} using #{@params[:multi_thread] ? 'multi' : 'single'}-threaded mode"
  @error_handler = nil
end