Kode berikut menunjukkan cara membuat daftar untuk sebuah bucket.
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"
)
// Tentukan variabel global.
var (
region string // Wilayah tempat bucket berada.
bucketName string // Nama bucket.
)
// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
var (
accountId = "account id of the bucket" // Tentukan ID akun Alibaba Cloud yang mana pemilik bucket memberi izin untuk melakukan operasi. Contoh: 109885487000****.
inventoryId = "inventory id" // Nama daftar. Nama tersebut harus unik secara global di dalam bucket.
)
// Periksa apakah nama bucket telah ditentukan.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah wilayah telah ditentukan.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
// Muat konfigurasi default dan tentukan penyedia kredensial dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk mengonfigurasi daftar untuk bucket.
putRequest := &oss.PutBucketInventoryRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
InventoryId: oss.Ptr(inventoryId), // Nama daftar yang ditentukan oleh pengguna.
InventoryConfiguration: &oss.InventoryConfiguration{
Id: oss.Ptr(inventoryId), // Nama daftar yang ditentukan oleh pengguna.
IsEnabled: oss.Ptr(true), // Aktifkan daftar.
Filter: &oss.InventoryFilter{
Prefix: oss.Ptr("filterPrefix"), // Tentukan aturan yang digunakan untuk memfilter objek yang termasuk dalam daftar.
LastModifyBeginTimeStamp: oss.Ptr(int64(1637883649)), // Timestamp yang menentukan waktu mulai modifikasi terakhir.
LastModifyEndTimeStamp: oss.Ptr(int64(1638347592)), // Timestamp yang menentukan waktu akhir modifikasi terakhir.
LowerSizeBound: oss.Ptr(int64(1024)), // Batas ukuran bawah file (satuan: byte).
UpperSizeBound: oss.Ptr(int64(1048576)), // Batas ukuran atas file (satuan: byte).
StorageClass: oss.Ptr("Standard,IA"), // Kelas penyimpanan.
},
Destination: &oss.InventoryDestination{
OSSBucketDestination: &oss.InventoryOSSBucketDestination{
Format: oss.InventoryFormatCSV, // Format daftar ekspor.
AccountId: oss.Ptr(accountId), // Tentukan ID akun yang diberi izin oleh pemilik bucket untuk melakukan operasi. Contoh: 109885487000****.
RoleArn: oss.Ptr("acs:ram::" + accountId + ":role/AliyunOSSRole"), // Tentukan nama Peran RAM yang diberi izin oleh pemilik bucket untuk melakukan operasi. Contoh: acs:ram::109885487000****:role/ram-test.
Bucket: oss.Ptr("acs:oss:::" + bucketName), // Tentukan nama bucket tempat Anda ingin menyimpan daftar yang dihasilkan.
Prefix: oss.Ptr("export/"), // Tentukan awalan jalur tempat Anda ingin menyimpan daftar yang dihasilkan.
},
},
Schedule: &oss.InventorySchedule{
Frequency: oss.InventoryFrequencyDaily, // Frekuensi ekspor daftar (harian).
},
IncludedObjectVersions: oss.Ptr("All"), // Tentukan apakah akan menyertakan semua versi objek atau hanya versi saat ini dari objek dalam daftar.
},
}
// Eksekusi permintaan.
putResult, err := client.PutBucketInventory(context.TODO(), putRequest)
if err != nil {
log.Fatalf("gagal menambahkan daftar bucket %v", err)
}
// Tampilkan hasil.
log.Printf("hasil tambah daftar bucket:%#v\n", putResult)
}