Class: BucketClient::AWS4RequestSigner
- Inherits:
-
Object
- Object
- BucketClient::AWS4RequestSigner
- Defined in:
- lib/bucket_client/aws4_request_signer.rb
Instance Method Summary collapse
-
#initialize(id, secret) ⇒ AWS4RequestSigner
constructor
A new instance of AWS4RequestSigner.
-
#sign(request, service, region) ⇒ KirinHttp::Message
Signs the http request using the AWS4 signing protocol.
Constructor Details
#initialize(id, secret) ⇒ AWS4RequestSigner
Returns a new instance of AWS4RequestSigner.
10 11 12 13 14 |
# File 'lib/bucket_client/aws4_request_signer.rb', line 10 def initialize(id, secret) @id = id @secret = secret @algorithm = "AWS4-HMAC-SHA256" end |
Instance Method Details
#sign(request, service, region) ⇒ KirinHttp::Message
Signs the http request using the AWS4 signing protocol
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/bucket_client/aws4_request_signer.rb', line 22 def sign(request, service, region) request.header["x-amz-date"] = amz_date request.header["Content-MD5"] = request_md5(request) request.header["x-amz-content-sha256"] = sha256 request.content cred = credential region, service canonical_req = canonical_request request signed_payload = string_to_sign(cred, canonical_req) signature = get_signature @secret, date_stamp, region, service, signed_payload request.header["Authorization"] = auth cred, signed_headers(request), signature request end |