全部产品
Search
文档中心

Object Storage Service:Pelacakan Akses (Go SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan OSS SDK untuk Go V2 guna mengaktifkan pelacakan akses untuk sebuah bucket.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou untuk Wilayah China (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya di dalam bucket. Namun, untuk mengakses sumber daya dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket, Anda harus menggunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir OSS.

  • Kode contoh dalam topik ini membaca kredensial akses dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi Kredensial Akses.

Kode contoh

Aktifkan pelacakan akses

Berikut adalah contoh kode untuk mengaktifkan pelacakan akses pada 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"
)

// Definisikan variabel global.
var (
	region     string // Wilayah bucket.
	bucketName string // Nama bucket.
)

// Fungsi init menginisialisasi parameter baris perintah.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

// Fungsi utama mengaktifkan pelacakan akses untuk 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 atur penyedia kredensial dan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Buat klien OSS.
	client := oss.NewClient(cfg)

	// Buat permintaan untuk mengaktifkan pelacakan akses untuk bucket.
	request := &oss.PutBucketAccessMonitorRequest{
		Bucket: oss.Ptr(bucketName),
		AccessMonitorConfiguration: &oss.AccessMonitorConfiguration{
			Status: oss.AccessMonitorStatusEnabled, // Aktifkan pelacakan akses.
		},
	}

	// Jalankan operasi untuk mengaktifkan pelacakan akses untuk bucket.
	putResult, err := client.PutBucketAccessMonitor(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menempatkan monitor akses bucket %v", err)
	}

	// Cetak hasilnya.
	log.Printf("hasil penempatan monitor akses bucket: %#v\n", putResult)
}

Periksa status pelacakan akses

Berikut adalah contoh kode untuk menanyakan status pelacakan akses 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"
)

// Definisikan variabel global.
var (
	region     string // Wilayah bucket.
	bucketName string // Nama bucket.
)

// Fungsi init 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 atur penyedia kredensial dan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Buat klien OSS.
	client := oss.NewClient(cfg)

	// Buat permintaan untuk menanyakan konfigurasi pelacakan akses bucket.
	request := &oss.GetBucketAccessMonitorRequest{
		Bucket: oss.Ptr(bucketName),
	}

	// Jalankan operasi untuk menanyakan konfigurasi pelacakan akses dan proses hasilnya.
	result, err := client.GetBucketAccessMonitor(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mendapatkan monitor akses bucket %v", err)
	}

	// Cetak hasilnya.
	log.Printf("hasil mendapatkan monitor akses bucket:%#v\n", result)
}

Referensi

  • Untuk informasi lebih lanjut tentang operasi API untuk mengaktifkan pelacakan akses, lihat PutBucketAccessMonitor.

  • Untuk informasi lebih lanjut tentang operasi API untuk menanyakan status pelacakan akses, lihat GetBucketAccessMonitor.