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 }