# File lib/AWS.rb, line 123
123:     def initialize( options = {} )
124: 
125:       options = { :access_key_id => "",
126:                   :secret_access_key => "",
127:                   :use_ssl => true,
128:                   :server => default_host,
129:                   :path => "/",
130:                   :proxy_server => nil
131:                   }.merge(options)
132: 
133:       @server = options[:server]
134:       @proxy_server = options[:proxy_server]
135:       @use_ssl = options[:use_ssl]
136:       @path = options[:path]
137: 
138:       raise ArgumentError, "No :access_key_id provided" if options[:access_key_id].nil? || options[:access_key_id].empty?
139:       raise ArgumentError, "No :secret_access_key provided" if options[:secret_access_key].nil? || options[:secret_access_key].empty?
140:       raise ArgumentError, "No :use_ssl value provided" if options[:use_ssl].nil?
141:       raise ArgumentError, "Invalid :use_ssl value provided, only 'true' or 'false' allowed" unless options[:use_ssl] == true || options[:use_ssl] == false
142:       raise ArgumentError, "No :server provided" if options[:server].nil? || options[:server].empty?
143: 
144:       if options[:port]
145:         # user-specified port
146:         @port = options[:port]
147:       elsif @use_ssl
148:         # https
149:         @port = 443
150:       else
151:         # http
152:         @port = 80
153:       end
154: 
155:       @access_key_id = options[:access_key_id]
156:       @secret_access_key = options[:secret_access_key]
157: 
158:       # Use proxy server if defined
159:       # Based on patch by Mathias Dalheimer.  20070217
160:       proxy = @proxy_server ? URI.parse(@proxy_server) : OpenStruct.new
161:       @http = Net::HTTP::Proxy( proxy.host,
162:                                 proxy.port,
163:                                 proxy.user,
164:                                 proxy.password).new(options[:server], @port)
165: 
166:       @http.use_ssl = @use_ssl
167: 
168:       # Don't verify the SSL certificates.  Avoids SSL Cert warning in log on every GET.
169:       @http.verify_mode = OpenSSL::SSL::VERIFY_NONE
170: 
171:     end