获取桶列表

以下代码用于请求用户在指定区域内所有存储桶的列表,桶按照字母顺序排列。

package main

import (
  "fmt"
  "github.com/aws/aws-sdk-go/aws"
  "github.com/aws/aws-sdk-go/aws/credentials"
  "github.com/aws/aws-sdk-go/aws/session"
  "github.com/aws/aws-sdk-go/service/s3"
  "os"
)

func exitErrorf(msg string, args ...interface{}) {
  fmt.Fprintf(os.Stderr, msg+"\n", args...)
  os.Exit(1)
}

func main() {
  sess, err := session.NewSession(&aws.Config{
    Region:      aws.String("Region"),
    Endpoint:    aws.String("your-endpoint"),
    Credentials: credentials.NewStaticCredentials("your-access-key", "your-secret-access-key", ""),
  })
  svc := s3.New(sess)
  result, err := svc.ListBuckets(nil)
  if err != nil {
    exitErrorf("Unable to list buckets, %v", err)
  }
  fmt.Println("Buckets:")
  for _, b := range result.Buckets {
    fmt.Printf("* %s created on %s\n",
      aws.StringValue(b.Name), aws.TimeValue(b.CreationDate))
  }
  for _, b := range result.Buckets {
    fmt.Printf("%s\n", aws.StringValue(b.Name))
  }
}

注意

代码中 access key 和 secret access key 分别为对应账号的 access key 和 secret access key。 其中 aws.Config 代表的是对访问信息的配置,一般要配置提供对象存储服务的 IP 地址和端口号、采用的签名算法、签名版本。