Topik ini menjelaskan cara menanyakan tag suatu objek menggunakan Go SDK V2.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhouuntuk Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh Object Storage Service (OSS), lihat Wilayah dan Titik Akhir OSS.Dalam topik ini, kredensial akses diambil dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Untuk menanyakan tag suatu objek, Anda harus memiliki izin
oss:GetObjectTagging. Untuk informasi lebih lanjut, lihat Berikan Kebijakan Kustom kepada Pengguna RAM.
Penandaan objek menggunakan pasangan kunci-nilai untuk mengidentifikasi objek. Untuk informasi lebih lanjut tentang penandaan objek, lihat Penandaan Objek dalam Panduan Pengembang OSS.
Untuk informasi lebih lanjut tentang cara mengambil tag dari sebuah objek, lihat GetObjectTagging.
Kode contoh
Berikut adalah kode contoh yang menunjukkan cara menanyakan tag suatu objek dalam 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.
objectName string // Nama objek.
)
// 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.")
flag.StringVar(&objectName, "object", "", "Nama objek.")
}
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")
}
// Periksa apakah nama bucket telah ditentukan.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah nama objek telah ditentukan.
if len(objectName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama objek diperlukan")
}
// Muat konfigurasi default dan tentukan penyedia kredensial serta wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk menanyakan tag objek.
getRequest := &oss.GetObjectTaggingRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
Key: oss.Ptr(objectName), // Nama objek.
}
// Kirim permintaan query dan proses hasilnya.
getResult, err := client.GetObjectTagging(context.TODO(), getRequest)
if err != nil {
log.Fatalf("gagal mendapatkan penandaan objek %v", err)
}
// Tampilkan jumlah tag.
log.Printf("hasil penandaan objek:%#v\n", len(getResult.Tags))
}
Referensi
Untuk kode contoh lengkap yang digunakan untuk menanyakan tag suatu objek, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API untuk menanyakan tag objek, lihat GetObjectTagging.