OSDN Git Service

Create ossClient.go (#574)
[bytom/vapor.git] / vendor / github.com / aliyun / aliyun-oss-go-sdk / sample / bucket_inventory.go
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 }