canonical_request: Construct a Canonical Request

View source: R/canonical_request.R

canonical_requestR Documentation

Construct a Canonical Request

Description

Construct a Canonical Request from request elements

Usage

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

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.

Value

A list containing

Author(s)

Thomas J. Leeper <thosjleeper@gmail.com>

References

Create a Canonical Request For Signature Version 4

See Also

signature_v4, signature_v4_auth

link{signature_v4_aut}, string_to_sign

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)

cloudyr/aws.signature documentation built on March 24, 2022, 8:04 a.m.