Skip to content

Latest commit

 

History

History
50 lines (35 loc) · 1.71 KB

README.md

File metadata and controls

50 lines (35 loc) · 1.71 KB

AWS Signing Client

This package provides simple http.Client creation that wraps all outgoing HTTP requests with Amazon AWS signatures using the AWS SDK for Go.

Requirements

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).

Acknowledgements

Thank you to both @deoxxa and @Saikat for fixing signature issues when they arose. Without them, this would not work.

Usage

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")