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