VK Cloud logo
Обновлена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.