/
main.go
46 lines (35 loc) · 1.07 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package main
import (
"bytes"
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/s3"
"github.com/cwxstat/go-aws-s3-v2/pkg"
"github.com/rs/xid"
)
func main() {
//snippet-start:[s3.go-v2.s3_basics]
// This bucket name is 100% unique.
// Remember that bucket names must be globally unique among all buckets.
myBucketName := "mybucket-" + (xid.New().String())
fmt.Printf("bucket name: %v\n", myBucketName)
cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
panic("Failed to load configuration")
}
s3client := s3.NewFromConfig(cfg)
ctx := context.TODO()
err = pkg.MakeBucket(ctx, s3client, cfg.Region, myBucketName)
if err != nil {
panic("Make bucket error: " + err.Error())
}
_, err = pkg.PutObject(ctx, s3client, myBucketName, "myobject", bytes.NewReader([]byte("Hi!")))
if err != nil {
panic("Failed to put object")
}
// TODO: (mmc) make generic and add tests
//pkg.BucketOps(ctx, *s3client, myBucketName)
//pkg.AccountBucketOps(*s3client, myBucketName)
pkg.BucketDelOps(*s3client, myBucketName)
}