Skip to content

sha1sum/aws_signing_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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). Additionally, you may use the v2 sdk: https://github.com/aws/aws-sdk-go-v2.

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)

// aws_signing_client.AWSSigner, *http.Client, AWS service abbreviation, AWS region
var awsClient = aws_signing_client.New(signer, nil, "es", "us-east-1")

v2 aws sdk

Using aws sdk v2 is as simple as changing the package and configuring with CredentialsProvider.

import (
	"https://github.com/aws/aws-sdk-go-v2/aws"
	"https://github.com/aws/aws-sdk-go-v2/aws/signer/v4"
)

var credsProvider aws.CredentialsProvider
// ... set credentials ...
var signer = v4.NewSigner(credsProvider)

About

Go wrapper for http.Client for Signed AWS Requests

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages