-
Notifications
You must be signed in to change notification settings - Fork 1
/
get_bucket_info.go
63 lines (50 loc) · 1.39 KB
/
get_bucket_info.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package main
import (
"context"
"encoding/json"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
endpoint string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&endpoint, "endpoint", "", "The domain names that other services can use to access OSS.")
flag.StringVar(&bucketName, "bucket", "", "The `name` of the bucket.")
}
// a example of showing how to get the bucket info.
func main() {
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
if len(endpoint) > 0 {
cfg.WithEndpoint(endpoint)
}
client := oss.NewClient(cfg)
// Set the request
request := &oss.GetBucketInfoRequest{
Bucket: oss.Ptr(bucketName),
}
// Send request
result, err := client.GetBucketInfo(context.TODO(), request)
if err != nil {
log.Fatalf("failed to get bucket info %v", err)
}
// Print the result
out, _ := json.MarshalIndent(result.BucketInfo, "", " ")
log.Printf("Result:\n%v", string(out))
}