SDK – Go (aws-sdk-go-v2)
Use the AWS SDK for Go v2 with a custom endpoint.
Select S3 Endpoint
Choose preferred region.
go.mod
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
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://"
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)
}
}