Modified the Aws4Signer to be able to deal with AWS Temporary Credentials, for example as associated with a Role instead of a User. The AwsCredentials class now has an extra ‘token’ member that is an Option[String]. To use temporary credentials the token must be provided in a header called “X-Amz-SignedHeaders” and form part of the signed headers. AwsCredentials will read this from a property called “aws.token”.

This is backwardly compatible so that if you are using permanent credentials and so do not provide a token then the header is omitted.

Made some code updates per EECOLOR's suggestions.