- user_pass = parsedValue.userinfo.nil? ? nil : parsedValue.userinfo.split(':')
- parsedValue.userinfo = ''
- key = open(parsedValue, :http_basic_authentication => user_pass).read
+ # Only send basic auth if URL contains userinfo
+ # Some webservers (e.g. Amazon S3) return code 400 if empty basic auth is sent
+ if parsedValue.userinfo.nil?
+ key = parsedValue.read
+ else
+ user_pass = parsedValue.userinfo.split(':')
+ parsedValue.userinfo = ''
+ key = open(parsedValue, :http_basic_authentication => user_pass).read
+ end