Обновлена: 17 июля 2023 г. в 08:28
Операции с бакетами
Проведя предварительные настройки, можно приступить к работе с бакетами S3.
Создание бакета инициализируется следующей командой:
1package main 2 3import ( 4 "github.com/aws/aws-sdk-go/aws" 5 "github.com/aws/aws-sdk-go/aws/session" 6 "github.com/aws/aws-sdk-go/service/s3" 7 "log" 8) 9 10const ( 11 vkCloudHotboxEndpoint = "https://hb.vkcs.cloud" 12 defaultRegion = "us-east-1" 13) 14 15func main() { 16 // Создание сессии 17 sess, _ := session.NewSession() 18 19 // Подключение к сервису S3 20 svc := s3.New(sess, aws.NewConfig().WithEndpoint(vkCloudHotboxEndpoint).WithRegion(defaultRegion)) 21 22 // Создание бакета 23 bucket := "gobucket" 24 25 if _, err := svc.CreateBucket(&s3.CreateBucketInput{ 26 Bucket: aws.String(bucket), 27 }); err != nil { 28 log.Fatalf("Unable to create bucket %q, %v", bucket, err) 29 } else { 30 log.Printf("Bucket with name %q created", bucket) 31 } 32}
В официальной документации к библиотеке aws-sdk-go дано подробное описание команды CreateBucket.
Список бакетов можно получить следующим образом:
1package main 2 3import ( 4 "github.com/aws/aws-sdk-go/aws" 5 "github.com/aws/aws-sdk-go/aws/session" 6 "github.com/aws/aws-sdk-go/service/s3" 7 "log" 8) 9 10const ( 11 vkCloudHotboxEndpoint = "https://hb.vkcs.cloud" 12 defaultRegion = "us-east-1" 13) 14 15func main() { 16 // Создание сессии 17 sess, _ := session.NewSession() 18 19 // Подключение к сервису S3 20 svc := s3.New(sess, aws.NewConfig().WithEndpoint(vkCloudHotboxEndpoint).WithRegion(defaultRegion)) 21 22 if res, err := svc.ListBuckets(nil); err != nil { 23 log.Fatalf("Unable to list buckets, %v", err) 24 } else { 25 for _, b := range res.Buckets { 26 log.Printf("* %s created on %s \n", aws.StringValue(b.Name), aws.TimeValue(b.CreationDate)) 27 } 28 } 29}
В официальной документации к библиотеке aws-sdk-go дано подробное описание команды ListBuckets
.