全部产品
Search
文档中心

Object Storage Service:Penandaan Bucket dengan Go

更新时间:Nov 09, 2025

Topik ini menjelaskan cara mengelola tag pada sebuah bucket.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan wilayah China (Hangzhou) (cn-hangzhou) sebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama dengan bucket, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara wilayah OSS dan titik akhir, lihat Wilayah dan Titik Akhir.

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

Metode

Konfigurasikan tag untuk bucket

func (c *Client) PutBucketTags(ctx context.Context, request *PutBucketTagsRequest, optFns ...func(*Options)) (*PutBucketTagsResult, error)

Query tag dari bucket

func (c *Client) GetBucketTags(ctx context.Context, request *GetBucketTagsRequest, optFns ...func(*Options)) (*GetBucketTagsResult, error)

Hapus tag dari bucket

func (c *Client) DeleteBucketTags(ctx context.Context, request *DeleteBucketTagsRequest, optFns ...func(*Options)) (*DeleteBucketTagsResult, error)

Parameter permintaan

Parameter

Tipe

Deskripsi

ctx

context.Context

Konteks permintaan, yang dapat digunakan untuk menentukan durasi total permintaan.

request

*PutBucketTagsRequest

Menentukan parameter operasi API tertentu. Untuk informasi lebih lanjut, lihat PutBucketTagsRequest.

*GetBucketTagsRequest

Menentukan parameter operasi API tertentu. Untuk informasi lebih lanjut, lihat GetBucketTagsRequest.

*DeleteBucketTagsRequest

Menentukan parameter operasi API tertentu. Untuk informasi lebih lanjut, lihat DeleteBucketTagsRequest.

optFns

...func(*Options)

Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options.

Parameter respons

Parameter

Tipe

Deskripsi

result

*PutBucketTagsResult

Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, lihat PutBucketTagsResult.

*GetBucketTagsRequest

Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, lihat GetBucketTagsResult.

*DeleteBucketTagsRequest

Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, lihat DeleteBucketTagsResult.

err

error

Status permintaan. Jika permintaan gagal, nilai err tidak bisa nil.

Contoh

Konfigurasikan tag untuk bucket

Berikut adalah contoh kode untuk mengonfigurasi tag pada 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 nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan")
	}

	// Periksa apakah wilayah kosong.
	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 mengonfigurasi tag untuk bucket.
	request := &oss.PutBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		Tagging: &oss.Tagging{
			&oss.TagSet{
				[]oss.Tag{
					{
						Key:   oss.Ptr("k1"), // Kunci tag.
						Value: oss.Ptr("v1"), // Nilai tag.
					},
					{
						Key:   oss.Ptr("k2"), // Kunci tag.
						Value: oss.Ptr("v2"), // Nilai tag.
					},
					{
						Key:   oss.Ptr("k3"), // Kunci tag.
						Value: oss.Ptr("v3"), // Nilai tag.
					},
				},
			},
		},
	}

	// Kirim permintaan untuk mengonfigurasi tag untuk bucket.
	result, err := client.PutBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menempatkan tag bucket %v", err)
	}

	// Tampilkan hasil konfigurasi tag.
	log.Printf("hasil penempatan tag bucket:%#v\n", result)
}

Query tag dari bucket

Berikut adalah contoh kode untuk meminta tag dari 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 nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan")
	}

	// Periksa apakah wilayah kosong.
	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 meminta tag dari bucket.
	request := &oss.GetBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
	}

	// Eksekusi permintaan untuk meminta tag dari bucket dan proses hasilnya.
	getResult, err := client.GetBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mendapatkan tag bucket %v", err)
	}

	// Tampilkan jumlah tag bucket.
	log.Printf("hasil mendapatkan tag bucket:%#v\n", len(getResult.Tagging.TagSet.Tags))
}

Hapus tag dari bucket

Hapus satu tag dari bucket

Berikut adalah contoh kode untuk menghapus tag k1 dari 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 nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan")
	}

	// Periksa apakah wilayah kosong.
	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 menghapus tag dari bucket.
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		Tagging: oss.Ptr("k1"),
	}

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

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

Hapus beberapa tag dari bucket

Berikut adalah contoh kode untuk menghapus tag k1 dan k2 dari 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 nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan")
	}

	// Periksa apakah wilayah kosong.
	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 menghapus dua tag dari bucket.
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		Tagging: oss.Ptr("k1,k2"),
	}

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

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

Hapus semua tag dari bucket

Berikut adalah contoh kode untuk menghapus semua tag dari 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 nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan")
	}

	// Periksa apakah wilayah kosong.
	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 menghapus semua tag dari bucket.
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
	}

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

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

Referensi

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengonfigurasi tag pada bucket, kunjungi PutBucketTags.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk meminta tag dari bucket, kunjungi GetBucketTags.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus tag dari bucket, kunjungi DeleteBucketTags.