# File lib/deltacloud/drivers/google/google_driver.rb, line 129
  def blob_stream_connection(params)
    client = Fog::Storage.new({:provider => :google, :google_storage_access_key_id => params[:user],
                               :google_storage_secret_access_key => params[:password]})
    google_request_uri = "https://#{client.instance_variable_get(:@host)}"
    uri = URI.parse(google_request_uri)
    conn_params = {} # build hash for the Fog signature method
    conn_params[:headers] = {} #put the metadata here
    conn_params[:host] = uri.host
    conn_params[:path] = "#{params[:bucket]}/#{CGI.escape(params[:blob])}"
    conn_params[:method] = "PUT"
    timestamp = Fog::Time.now.to_date_header
    conn_params[:headers]['Date'] = timestamp
    conn_params[:headers]['Content-Type'] = params[:content_type]
    metadata = params[:metadata] || {}
    BlobHelper::rename_metadata_headers(metadata, 'x-goog-meta-')
    metadata.each{|k,v| conn_params[:headers][k]=v}
    auth_string = "GOOG1 #{params[:user]}:#{client.signature(conn_params)}"

    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    request = Net::HTTP::Put.new("/#{conn_params[:path]}")
    request['Host'] = conn_params[:host]
    request['Date'] = conn_params[:headers]['Date']
    request['Content-Type'] = conn_params[:headers]['Content-Type']
    request['Content-Length'] = params[:content_length]
    request['Authorization'] = auth_string
    metadata.each{|k,v| request[k] = v}
    return http, request
  end