# SDK – Go (aws-sdk-go-v2)

Use the AWS SDK for Go v2 with a custom endpoint.

> Available S3 endpoint: `a-s3.aur.lu` (France, Albi).

## go.mod

```go
module example

go 1.22

require (
  github.com/aws/aws-sdk-go-v2 v1.30.0
  github.com/aws/aws-sdk-go-v2/config v1.28.0
  github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0
)
```

## Example

```go
package main

import (
  "context"
  "fmt"
  "os"
  awscfg "github.com/aws/aws-sdk-go-v2/config"
  "github.com/aws/aws-sdk-go-v2/credentials"
  "github.com/aws/aws-sdk-go-v2/service/s3"
)

func main() {
  endpoint := "https://a-s3.aur.lu"
  cfg, err := awscfg.LoadDefaultConfig(context.Background(),
    awscfg.WithRegion("us-east-1"),
    awscfg.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
      os.Getenv("AURORA_ACCESS_KEY"),
      os.Getenv("AURORA_SECRET_KEY"),
      "",
    )),
  )
  if err != nil { panic(err) }

  client := s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.BaseEndpoint = &endpoint
    o.UsePathStyle = true
  })

  out, err := client.ListBuckets(context.Background(), &s3.ListBucketsInput{})
  if err != nil { panic(err) }
  for _, b := range out.Buckets {
    fmt.Println(*b.Name)
  }
}
```
