全部产品
Search
文档中心

Object Storage Service:Daftar Bucket (Go SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara membuat, menanyakan, mencantumkan, dan menghapus konfigurasi daftar untuk sebuah bucket.

Catatan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou untuk Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir OSS.

  • Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.

  • Pastikan Anda memiliki izin untuk membuat, menanyakan, mencantumkan, dan menghapus daftar untuk sebuah bucket. Secara default, pemilik bucket memiliki izin untuk melakukan operasi tersebut. Jika Anda tidak memiliki izin yang diperlukan, hubungi pemilik bucket untuk memberikan izin kepada Anda.

  • Anda dapat mengonfigurasi hingga 1.000 daftar untuk sebuah bucket.

  • Bucket sumber yang ingin Anda konfigurasi daftarnya harus berada di wilayah yang sama dengan bucket tujuan tempat Anda ingin menyimpan daftar inventaris.

Kode contoh

Buat daftar untuk sebuah bucket

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(&region, "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)
}

Tanyakan konfigurasi daftar sebuah bucket

Kode berikut menunjukkan cara menanyakan konfigurasi daftar 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(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	// Parsing parameter baris perintah.
	flag.Parse()

	// Tentukan nama daftar.
	var inventoryId = "inventory id"

	// 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 instance OSSClient.
	client := oss.NewClient(cfg)

	// Buat permintaan untuk menanyakan konfigurasi daftar.
	request := &oss.GetBucketInventoryRequest{
		Bucket:      oss.Ptr(bucketName),
		InventoryId: oss.Ptr(inventoryId),
	}

	// Kirim permintaan penanyaan dan proses hasilnya.
	result, err := client.GetBucketInventory(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mendapatkan daftar bucket %v", err)
	}

	// Tampilkan hasil.
	log.Printf("hasil dapatkan daftar bucket:%#v\n", result)
}

Cantumkan daftar yang dikonfigurasikan untuk sebuah bucket

Catatan

Anda dapat menanyakan hingga 100 daftar dalam satu permintaan. Jika Anda ingin menanyakan lebih dari 100 daftar, kirim beberapa permintaan dan gunakan token yang dikembalikan untuk setiap permintaan sebagai parameter untuk permintaan berikutnya.

Kode berikut menunjukkan cara mencantumkan daftar yang dikonfigurasikan 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(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	// Parsing parameter baris perintah.
	flag.Parse()

	// 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 mencantumkan daftar yang dikonfigurasikan untuk bucket.
	request := &oss.ListBucketInventoryRequest{
		Bucket: oss.Ptr(bucketName),
	}

	// Eksekusi permintaan dan proses hasilnya.
	result, err := client.ListBucketInventory(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mencantumkan daftar bucket %v", err)
	}

	// Tampilkan hasil.
	log.Printf("hasil cantumkan daftar bucket:%#v\n", result)
}

Hapus inventaris yang dikonfigurasi untuk bucket

Kode berikut menunjukkan cara menghapus daftar yang dikonfigurasikan 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(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	// Parsing parameter baris perintah.
	flag.Parse()

	// Tentukan nama daftar.
	var inventoryId = "inventory id"

	// 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 menghapus daftar yang dikonfigurasikan untuk bucket.
	request := &oss.DeleteBucketInventoryRequest{
		Bucket:      oss.Ptr(bucketName),
		InventoryId: oss.Ptr(inventoryId),
	}

	// Eksekusi permintaan dan proses hasilnya.
	result, err := client.DeleteBucketInventory(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menghapus daftar bucket %v", err)
	}

	// Tampilkan hasil.
	log.Printf("hasil hapus daftar bucket:%#v\n", result)
}

Referensi

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk membuat daftar untuk sebuah bucket, lihat PutBucketInventory.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menanyakan konfigurasi daftar sebuah bucket, lihat GetBucketInventory.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mencantumkan daftar yang dikonfigurasikan untuk sebuah bucket, lihat ListBucketInventory.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus daftar yang dikonfigurasikan untuk sebuah bucket, lihat DeleteBucketInventory.