sample/put_bucket_inventory.go (68 lines of code) (raw):
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
flag.Parse()
var (
accountId = "account id of the bucket"
inventoryId = "inventory id"
)
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg)
putRequest := &oss.PutBucketInventoryRequest{
Bucket: oss.Ptr(bucketName),
InventoryId: oss.Ptr(inventoryId),
InventoryConfiguration: &oss.InventoryConfiguration{
Id: oss.Ptr(inventoryId),
IsEnabled: oss.Ptr(true),
Filter: &oss.InventoryFilter{
Prefix: oss.Ptr("filterPrefix"),
LastModifyBeginTimeStamp: oss.Ptr(int64(1637883649)),
LastModifyEndTimeStamp: oss.Ptr(int64(1638347592)),
LowerSizeBound: oss.Ptr(int64(1024)),
UpperSizeBound: oss.Ptr(int64(1048576)),
StorageClass: oss.Ptr("Standard,IA"),
},
Destination: &oss.InventoryDestination{
&oss.InventoryOSSBucketDestination{
Format: oss.InventoryFormatCSV,
AccountId: oss.Ptr(accountId),
RoleArn: oss.Ptr("acs:ram::" + accountId + ":role/AliyunOSSRole"),
Bucket: oss.Ptr("acs:oss:::" + bucketName),
},
},
Schedule: &oss.InventorySchedule{
oss.InventoryFrequencyDaily,
},
IncludedObjectVersions: oss.Ptr("All"),
},
}
putResult, err := client.PutBucketInventory(context.TODO(), putRequest)
if err != nil {
log.Fatalf("failed to put bucket inventory %v", err)
}
log.Printf("put bucket inventory result:%#v\n", putResult)
}