Skip to content

Instantly share code, notes, and snippets.

@dragonfax
Created August 28, 2015 01:23
Show Gist options
  • Save dragonfax/c9cb3c50ae4f00da13f4 to your computer and use it in GitHub Desktop.
Save dragonfax/c9cb3c50ae4f00da13f4 to your computer and use it in GitHub Desktop.
using go-aws-auth to access Riak CS
package main
import (
"io/ioutil"
"log"
"net/http"
"time"
"github.com/smartystreets/go-aws-auth"
)
func main() {
key := "XXXXX"
secret := "XXXXXXX"
cred := awsauth.Credentials{
AccessKeyID: key,
SecretAccessKey: secret,
}
url := "http://192.168.45.42:8080/blah/Gemfile"
client := new(http.Client)
req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Host", "blah.s3.amazonaws.com")
req.Header.Set("Date", time.Now().Format(time.RFC1123Z))
req = awsauth.Sign4(req, cred)
log.Printf("Headers %v", req.Header)
log.Print("Authorization: " + req.Header.Get("Authorization"))
log.Printf("URL: %s", req.URL)
resp, err := client.Do(req)
if err != nil {
log.Print(err)
msg, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
log.Print(string(msg))
panic("request failed")
}
msg, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
log.Printf("%s %s", resp.StatusCode, msg)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment