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

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     7  )
     8  
     9  // BucketInventorySample shows how to set, get, list and delete the bucket inventory configuration
    10  func BucketInventorySample() {
    11  	// New client
    12  	client, err := oss.New(endpoint, accessID, accessKey)
    13  	if err != nil {
    14  		HandleError(err)
    15  	}
    16  
    17  	// Create the bucket with default parameters
    18  	err = client.CreateBucket(bucketName)
    19  	if err != nil {
    20  		HandleError(err)
    21  	}
    22  
    23  	// the inventory configuration,not use any encryption
    24  	bl := true
    25  	invConfig := oss.InventoryConfiguration{
    26  		Id:        "report1",
    27  		IsEnabled: &bl,
    28  		Prefix:    "filterPrefix/",
    29  		OSSBucketDestination: oss.OSSBucketDestination{
    30  			Format:    "CSV",
    31  			AccountId: accountID,
    32  			RoleArn:   stsARN,
    33  			Bucket:    "acs:oss:::" + bucketName,
    34  			Prefix:    "prefix1",
    35  		},
    36  		Frequency:              "Daily",
    37  		IncludedObjectVersions: "All",
    38  		OptionalFields: oss.OptionalFields{
    39  			Field: []string{
    40  				"Size", "LastModifiedDate", "ETag", "StorageClass", "IsMultipartUploaded", "EncryptionStatus",
    41  			},
    42  		},
    43  	}
    44  
    45  	// case 1: Set inventory
    46  	err = client.SetBucketInventory(bucketName, invConfig)
    47  	if err != nil {
    48  		HandleError(err)
    49  	}
    50  
    51  	// case 2: Get Bucket inventory
    52  	ret, err := client.GetBucketInventory(bucketName, invConfig.Id)
    53  	if err != nil {
    54  		HandleError(err)
    55  	}
    56  	fmt.Println("Bucket inventory:", ret)
    57  
    58  	// case 3: List Bucket inventory
    59  	invConfig2 := oss.InventoryConfiguration{
    60  		Id:        "report2",
    61  		IsEnabled: &bl,
    62  		Prefix:    "filterPrefix/",
    63  		OSSBucketDestination: oss.OSSBucketDestination{
    64  			Format:    "CSV",
    65  			AccountId: accountID,
    66  			RoleArn:   stsARN,
    67  			Bucket:    "acs:oss:::" + bucketName,
    68  			Prefix:    "prefix1",
    69  		},
    70  		Frequency:              "Daily",
    71  		IncludedObjectVersions: "All",
    72  		OptionalFields: oss.OptionalFields{
    73  			Field: []string{
    74  				"Size", "LastModifiedDate", "ETag", "StorageClass", "IsMultipartUploaded", "EncryptionStatus",
    75  			},
    76  		},
    77  	}
    78  	err = client.SetBucketInventory(bucketName, invConfig2)
    79  	if err != nil {
    80  		HandleError(err)
    81  	}
    82  	NextContinuationToken := ""
    83  	listInvConf, err := client.ListBucketInventory(bucketName, NextContinuationToken)
    84  	if err != nil {
    85  		HandleError(err)
    86  	}
    87  	fmt.Println("Bucket inventory list:", listInvConf)
    88  
    89  	// case 4: Delete Bucket inventory
    90  	err = client.DeleteBucketInventory(bucketName, invConfig.Id)
    91  	if err != nil {
    92  		HandleError(err)
    93  	}
    94  
    95  	// Delete bucket
    96  	err = client.DeleteBucket(bucketName)
    97  	if err != nil {
    98  		HandleError(err)
    99  	}
   100  
   101  	fmt.Println("BucketInventorySample completed")
   102  }