# File lib/deltacloud/drivers/ec2/ec2_driver.rb, line 483
        def blob_stream_connection(params)
          #canonicalise metadata:
          #http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?RESTAuthentication.html
          metadata = params[:metadata] || {}
          signature_meta_string = ""
          BlobHelper::rename_metadata_headers(metadata, 'x-amz-meta-')
          keys_array = metadata.keys.sort!
          keys_array.each {|k| signature_meta_string << "#{k}:#{metadata[k]}\n"}
          provider = "https://#{endpoint_for_service(:s3)}"
          uri = URI.parse(provider)
          http = Net::HTTP.new("#{params[:bucket]}.#{uri.host}", uri.port )
          http.use_ssl = true
          http.verify_mode = OpenSSL::SSL::VERIFY_NONE
          timestamp = Time.now.httpdate
          string_to_sign =
            "PUT\n\n#{params[:content_type]}\n#{timestamp}\n#{signature_meta_string}/#{params[:bucket]}/#{params[:blob]}"
          auth_string = Aws::Utils::sign(params[:password], string_to_sign)
          request = Net::HTTP::Put.new("/#{params[:blob]}")
          request['Host'] = "#{params[:bucket]}.#{uri.host}"
          request['Date'] = timestamp
          request['Content-Type'] = params[:content_type]
          request['Content-Length'] = params[:content_length]
          request['Authorization'] = "AWS #{params[:user]}:#{auth_string}"
          request['Expect'] = "100-continue"
          metadata.each{|k,v| request[k] = v}
          return http, request
        end