github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/list_buckets.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // ListBucketsSample shows the list bucket, including default and specified parameters.
    10  func ListBucketsSample() {
    11  	var myBuckets = []string{
    12  		"my-bucket-1",
    13  		"my-bucket-11",
    14  		"my-bucket-2",
    15  		"my-bucket-21",
    16  		"my-bucket-22",
    17  		"my-bucket-3",
    18  		"my-bucket-31",
    19  		"my-bucket-32"}
    20  
    21  	// New client
    22  	client, err := oss.New(endpoint, accessID, accessKey)
    23  	if err != nil {
    24  		HandleError(err)
    25  	}
    26  
    27  	// Remove other bucket
    28  	lbr, err := client.ListBuckets()
    29  	if err != nil {
    30  		HandleError(err)
    31  	}
    32  
    33  	for _, bucket := range lbr.Buckets {
    34  		err = client.DeleteBucket(bucket.Name)
    35  		if err != nil {
    36  			//HandleError(err)
    37  		}
    38  	}
    39  
    40  	// Create bucket
    41  	for _, bucketName := range myBuckets {
    42  		err = client.CreateBucket(bucketName)
    43  		if err != nil {
    44  			HandleError(err)
    45  		}
    46  	}
    47  
    48  	// Case 1: Use default parameter
    49  	lbr, err = client.ListBuckets()
    50  	if err != nil {
    51  		HandleError(err)
    52  	}
    53  	fmt.Println("my buckets:", lbr.Buckets)
    54  
    55  	// Case 2: Specify the max keys : 3
    56  	lbr, err = client.ListBuckets(oss.MaxKeys(3))
    57  	if err != nil {
    58  		HandleError(err)
    59  	}
    60  	fmt.Println("my buckets max num:", lbr.Buckets)
    61  
    62  	// Case 3: Specify the prefix of buckets.
    63  	lbr, err = client.ListBuckets(oss.Prefix("my-bucket-2"))
    64  	if err != nil {
    65  		HandleError(err)
    66  	}
    67  	fmt.Println("my buckets prefix :", lbr.Buckets)
    68  
    69  	// Case 4: Specify the marker to return from a certain one
    70  	lbr, err = client.ListBuckets(oss.Marker("my-bucket-22"))
    71  	if err != nil {
    72  		HandleError(err)
    73  	}
    74  	fmt.Println("my buckets marker :", lbr.Buckets)
    75  
    76  	// Case 5: Specify max key and list all buckets with paging, return 3 items each time.
    77  	marker := oss.Marker("")
    78  	for {
    79  		lbr, err = client.ListBuckets(oss.MaxKeys(3), marker)
    80  		if err != nil {
    81  			HandleError(err)
    82  		}
    83  		marker = oss.Marker(lbr.NextMarker)
    84  		fmt.Println("my buckets page :", lbr.Buckets)
    85  		if !lbr.IsTruncated {
    86  			break
    87  		}
    88  	}
    89  
    90  	// Case 6: List bucket with marker and max key; return 3 items each time.
    91  	marker = oss.Marker("my-bucket-22")
    92  	for {
    93  		lbr, err = client.ListBuckets(oss.MaxKeys(3), marker)
    94  		if err != nil {
    95  			HandleError(err)
    96  		}
    97  		marker = oss.Marker(lbr.NextMarker)
    98  		fmt.Println("my buckets marker&page :", lbr.Buckets)
    99  		if !lbr.IsTruncated {
   100  			break
   101  		}
   102  	}
   103  
   104  	// Case 7: List bucket with prefix and max key, return 3 items each time.
   105  	pre := oss.Prefix("my-bucket-2")
   106  	marker = oss.Marker("")
   107  	for {
   108  		lbr, err = client.ListBuckets(oss.MaxKeys(3), pre, marker)
   109  		if err != nil {
   110  			HandleError(err)
   111  		}
   112  		pre = oss.Prefix(lbr.Prefix)
   113  		marker = oss.Marker(lbr.NextMarker)
   114  		fmt.Println("my buckets prefix&page :", lbr.Buckets)
   115  		if !lbr.IsTruncated {
   116  			break
   117  		}
   118  	}
   119  
   120  	// Delete bucket
   121  	for _, bucketName := range myBuckets {
   122  		err = client.DeleteBucket(bucketName)
   123  		if err != nil {
   124  			HandleError(err)
   125  		}
   126  	}
   127  
   128  	fmt.Println("ListsBucketSample completed")
   129  }