This package provides simple http.Client
creation that wraps all outgoing HTTP requests with Amazon AWS signatures using the AWS SDK for Go.
In order to use signing graciously provided by @nicolai86 in the AWS SDK for Go, you must be using a version that has been updated since the merge of pull request #735 for the SDK (tagged release v1.2.0).
Thank you to both @deoxxa and @Saikat for fixing signature issues when they arose. Without them, this would not work.
You can provide your own *http.Client
to have any existing fields persist or your RoundTripper
wrapped:
import (
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/sha1sum/aws_signing_client"
)
var credentials *credentials.Credentials
// ... set credentials ...
var signer = v4.NewSigner(credentials)
var myClient *http.Client
// ...
// *v4.Signer, *http.Client, AWS service abbreviation, AWS region
var awsClient = aws_signing_client.New(signer, myClient, "es", "us-east-1")
... or you can simply have the default client with default client and transport created for you:
import (
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/sha1sum/aws_signing_client"
)
var credentials *credentials.Credentials
// ... set credentials ...
var signer = v4.NewSigner(credentials)
// *v4.Signer, *http.Client, AWS service abbreviation, AWS region
var awsClient = aws_signing_client.New(signer, nil, "es", "us-east-1")