All Products
Search
Document Center

Object Storage Service:Daftar bucket (Go SDK V1)

Last Updated:Nov 29, 2025

Bucket adalah wadah yang digunakan untuk menyimpan objek. Semua objek harus disimpan dalam sebuah bucket, yang ditampilkan secara alfabetis. Anda dapat mendaftar bucket yang dimiliki oleh Akun Alibaba Cloud Anda di seluruh wilayah dan memfilternya berdasarkan kondisi tertentu.

Catatan

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.

  • Pada topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Configure access credentials.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Configure a client (Go SDK V1).

  • Untuk mendaftar bucket, Anda harus memiliki izin oss:ListBuckets. Untuk informasi selengkapnya, lihat Attach a custom access policy to a RAM user.

Contoh kode

Gunakan kode berikut untuk mendaftar bucket di semua wilayah dalam akun Anda.

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Atur yourEndpoint ke Endpoint bucket. Misalnya, untuk wilayah China (Hangzhou), atur Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, sesuaikan Endpoint sesuai kebutuhan.
	// Atur yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), atur wilayah ke cn-hangzhou. Untuk wilayah lain, sesuaikan wilayah sesuai kebutuhan.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Atur versi signature.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Gagal membuat klien OSS: %v", err)
	}

	// Daftar bucket di semua wilayah dalam akun Anda.
	marker := ""
	for {
		lsRes, err := client.ListBuckets(oss.Marker(marker))
		if err != nil {
			log.Fatalf("Gagal mendaftar bucket: %v", err)
		}

		// Secara default, 100 catatan dikembalikan sekaligus.
		for _, bucket := range lsRes.Buckets {
			log.Printf("Bucket: %s", bucket.Name)
		}

		if !lsRes.IsTruncated {
			break
		}
		marker = lsRes.NextMarker
	}
}

FAQ

Bagaimana cara mendaftar bucket dengan awalan tertentu?

Gunakan kode berikut untuk mendaftar bucket yang memiliki awalan `example` di semua wilayah dalam akun Anda.

...
prefix := "example" // Ganti dengan awalan yang sebenarnya.
lsRes, err := client.ListBuckets(oss.Prefix(prefix))
if err != nil {
	log.Fatalf("Gagal mendaftar bucket dengan awalan: %v", err)
}

log.Printf("Bucket dengan awalan '%s': %+v", prefix, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket dengan awalan '%s': %s", prefix, bucket.Name)

}

Bagaimana cara mendaftar bucket yang mengikuti penanda tertentu?

Gunakan kode berikut untuk mendaftar bucket yang secara alfabetis berada setelah `examplebucket` di semua wilayah dalam akun Anda.

...
marker := "examplebucket" // Ganti dengan penanda yang sebenarnya.
lsRes, err := client.ListBuckets(oss.Marker(marker))
if err != nil {
	log.Fatalf("Gagal mendaftar bucket dengan penanda: %v", err)
}

log.Printf("Bucket dengan penanda '%s': %+v", marker, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket dengan penanda '%s': %s", marker, bucket.Name)
}

Bagaimana cara mendaftar jumlah bucket tertentu?

Gunakan kode berikut untuk mendaftar maksimal 500 bucket di semua wilayah dalam akun Anda.

...
maxKeys := 500
lsRes, err := client.ListBuckets(oss.MaxKeys(maxKeys))
if err != nil {
	log.Fatalf("Gagal mendaftar bucket dengan jumlah maksimum: %v", err)
}

log.Printf("Jumlah maksimum bucket saya (%d): %+v", maxKeys, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket dengan maxKeys (%d): %s", maxKeys, bucket.Name)
}

Referensi

  • Untuk kode contoh lengkap tentang pendaftaran bucket, lihat contoh GitHub.

  • Untuk informasi selengkapnya mengenai operasi API untuk mendaftar bucket, lihat ListBuckets.