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:
146: @port = options[:port]
147: elsif @use_ssl
148:
149: @port = 443
150: else
151:
152: @port = 80
153: end
154:
155: @access_key_id = options[:access_key_id]
156: @secret_access_key = options[:secret_access_key]
157:
158:
159:
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:
169: @http.verify_mode = OpenSSL::SSL::VERIFY_NONE
170:
171: end