canonical_request function

Construct a Canonical Request

Construct a Canonical Request

Construct a Canonical Request from request elements

canonical_request( verb, canonical_uri = "", query_args = list(), canonical_headers, request_body = "", signed_body = FALSE )

Arguments

  • verb: A character string containing the HTTP verb being used in the request.
  • canonical_uri: A character string containing the canonical URI , meaning the contents of the API request URI excluding the host and the query parameters.
  • query_args: A named list of character strings containing the query string values (if any) used in the API request.
  • canonical_headers: A named list of character strings containing the headers used in the request.
  • request_body: The body of the HTTP request, or a filename. If a filename, hashing is performed on the file without reading it into memory.
  • signed_body: Sign the body request and add the correct header (x-amz-content-sha256) to the list of headers

Returns

A list containing

Details

This function creates a Canonical Request , which is part of the Signature Version 4. Users probably only need to use the signature_v4_auth function to generate signatures.

Examples

# From AWS documentation # http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html fromDocs <- "POST / content-type:application/x-www-form-urlencoded; charset=utf-8 host:iam.amazonaws.com x-amz-date:20110909T233600Z content-type;host;x-amz-date b6359072c78d70ebee1e81adcbab4f01bf2c23245fa365ef83fe8f1f955085e2" hdrs <- list(`Content-Type` = "application/x-www-form-urlencoded; charset=utf-8", Host = "iam.amazonaws.com", `x-amz-date` = "20110909T233600Z") r <- canonical_request(verb = "POST", canonical_uri = "/", query_args = list(), canonical_headers = hdrs, request_body = "Action=ListUsers&Version=2010-05-08") identical(fromDocs, r$canonical)

References

Create a Canonical Request For Signature Version 4

See Also

signature_v4, signature_v4_auth

link{signature_v4_aut}, string_to_sign

Author(s)

Thomas J. Leeper thosjleeper@gmail.com

  • Maintainer: Jonathan Stott
  • License: GPL (>= 2)
  • Last published: 2020-06-01