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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
package sample
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
// ListBucketsSample 展示了列举存储空间的用法,包括默认参数列举、指定参数列举
func ListBucketsSample() {
var myBuckets = []string{
"my-bucket-1",
"my-bucket-11",
"my-bucket-2",
"my-bucket-21",
"my-bucket-22",
"my-bucket-3",
"my-bucket-31",
"my-bucket-32"}
// New Client
client, err := oss.New(endpoint, accessID, accessKey)
if err != nil {
HandleError(err)
}
// remove other bucket
lbr, err := client.ListBuckets()
if err != nil {
HandleError(err)
}
for _, bucket := range lbr.Buckets {
err = client.DeleteBucket(bucket.Name)
if err != nil {
//HandleError(err)
}
}
// 创建bucket
for _, bucketName := range myBuckets {
err = client.CreateBucket(bucketName)
if err != nil {
HandleError(err)
}
}
// 场景1:使用默认参数参数
lbr, err = client.ListBuckets()
if err != nil {
HandleError(err)
}
fmt.Println("my buckets:", lbr.Buckets)
// 场景2:指定最大返回数量
lbr, err = client.ListBuckets(oss.MaxKeys(3))
if err != nil {
HandleError(err)
}
fmt.Println("my buckets max num:", lbr.Buckets)
// 场景3:返回指定前缀的Bucket
lbr, err = client.ListBuckets(oss.Prefix("my-bucket-2"))
if err != nil {
HandleError(err)
}
fmt.Println("my buckets prefix :", lbr.Buckets)
// 场景4:指定从某个之后返回
lbr, err = client.ListBuckets(oss.Marker("my-bucket-22"))
if err != nil {
HandleError(err)
}
fmt.Println("my buckets marker :", lbr.Buckets)
// 场景5:分页获取所有bucket,每次返回3个
marker := oss.Marker("")
for {
lbr, err = client.ListBuckets(oss.MaxKeys(3), marker)
if err != nil {
HandleError(err)
}
marker = oss.Marker(lbr.NextMarker)
fmt.Println("my buckets page :", lbr.Buckets)
if !lbr.IsTruncated {
break
}
}
// 场景6:分页所有获取从某个之后的bucket,每次返回3个
marker = oss.Marker("my-bucket-22")
for {
lbr, err = client.ListBuckets(oss.MaxKeys(3), marker)
if err != nil {
HandleError(err)
}
marker = oss.Marker(lbr.NextMarker)
fmt.Println("my buckets marker&page :", lbr.Buckets)
if !lbr.IsTruncated {
break
}
}
// 场景7:分页所有获取前缀的bucket,每次返回3个
pre := oss.Prefix("my-bucket-2")
marker = oss.Marker("")
for {
lbr, err = client.ListBuckets(oss.MaxKeys(3), pre, marker)
if err != nil {
HandleError(err)
}
pre = oss.Prefix(lbr.Prefix)
marker = oss.Marker(lbr.NextMarker)
fmt.Println("my buckets prefix&page :", lbr.Buckets)
if !lbr.IsTruncated {
break
}
}
// 删除bucket
for _, bucketName := range myBuckets {
err = client.DeleteBucket(bucketName)
if err != nil {
HandleError(err)
}
}
fmt.Println("ListsBucketSample completed")
}
|