def add_authorization!(signer)
self.access_key_id = signer.access_key_id
headers["x-amz-date"] ||= (headers["date"] ||= Time.now.rfc822)
headers["host"] ||= host
raise ArgumentError, "a security token is required" unless
signer.session_token
headers["x-amz-security-token"] = signer.session_token
request_hash = OpenSSL::Digest::SHA256.digest(string_to_sign)
signature = signer.sign(request_hash)
headers["x-amzn-authorization"] =
"AWS3 "+
"AWSAccessKeyId=#{signer.access_key_id},"+
"Algorithm=HmacSHA256,"+
"SignedHeaders=#{headers_to_sign.join(';')},"+
"Signature=#{signature}"
end