def self.signed_params_v4(params, headers, options={})
date = Fog::Time.now
params = params.merge('Version' => options[:version])
headers = headers.merge('Host' => options[:host], 'x-amz-date' => date.to_iso8601_basic)
headers['x-amz-security-token'] = options[:aws_session_token] if options[:aws_session_token]
query = options[:query] || {}
if !options[:body]
body = ''
for key in params.keys.sort
unless (value = params[key]).nil?
body << "#{key}=#{escape(value.to_s)}&"
end
end
body.chop!
else
body = options[:body]
end
headers['Authorization'] = options[:signer].sign({:method => options[:method], :headers => headers, :body => body, :query => query, :path => options[:path]}, date)
return body, headers
end