Golang
Prerequisites
go get github.com/aws/aws-sdk-go
Code
package main
import (
"fmt"
"log"
"github.com/aws/aws-sdk-go/aws"
"github"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
// Set the S3 compatible service information
accessKey := "YOUR_ACCESS_KEY"
secretKey := "YOUR_SECRET_KEY"
endpoint := "HOST_NAME" //Use the Hostname from the Details page.
region := "US"
// Create a session
s3Config := &aws.Config{
Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),
Endpoint: aws.String(endpoint),
Region: aws.String(region),
S3ForcePathStyle: aws.Bool(true), // Use path-style instead of virtual host style
}
sess, err := session.NewSession(s3Config)
if err != nil {
log.Fatalf("Failed to create session: %v", err)
}
// Create S3 service client
svc := s3.New(sess)
// List all buckets
fmt.Println("Attempting to list buckets...")
result, err := svc.ListBuckets(nil)
if err != nil {
log.Fatalf("Failed to list buckets: %v", err)
}
fmt.Println("Successfully connected! Current buckets:")
for _, bucket := range result.Buckets {
fmt.Printf(" - %s
", *bucket.Name)
}
}Explanation
Running the Program
Example Output
Notes
Last updated