Anda dapat menggunakan kode berikut untuk mengaktifkan akses real-time ke objek Arsip untuk sebuah bucket.
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" // Impor paket OSS SDK.
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // Impor paket untuk memproses informasi autentikasi.
)
var (
region string // Tentukan variabel untuk menyimpan informasi wilayah yang diperoleh dari baris perintah.
bucketName string // Tentukan variabel untuk menyimpan nama bucket yang diperoleh dari baris perintah.
)
// Fungsi init dieksekusi sebelum fungsi utama untuk menginisialisasi program.
func init() {
// Tetapkan parameter baris perintah untuk menentukan wilayah. Parameter ini kosong secara default.
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
// Tetapkan parameter baris perintah untuk menentukan nama bucket. Parameter ini kosong secara default.
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}
func main() {
flag.Parse() // Analisis parameter baris perintah.
// Periksa apakah nama bucket ditentukan. Jika tidak, program akan menampilkan parameter default dan menghentikan tugas.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat pesan kesalahan dan hentikan program.
}
// Periksa apakah informasi wilayah ditentukan. Jika tidak, program akan menampilkan parameter default dan menghentikan tugas.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat pesan kesalahan dan hentikan program.
}
// Buat objek konfigurasi, muat penyedia kredensial dari variabel lingkungan, dan tentukan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // Buat klien OSS baru menggunakan konfigurasi.
// Buat permintaan PutBucketArchiveDirectRead untuk mengaktifkan akses real-time untuk objek Arsip di bucket tertentu.
request := &oss.PutBucketArchiveDirectReadRequest{
Bucket: oss.Ptr(bucketName), // Tentukan nama bucket.
ArchiveDirectReadConfiguration: &oss.ArchiveDirectReadConfiguration{
Enabled: oss.Ptr(true), // Aktifkan akses real-time. Jika parameter ini disetel ke true, akses real-time diaktifkan. Jika disetel ke false, fitur ini dinonaktifkan.
},
}
result, err := client.PutBucketArchiveDirectRead(context.TODO(), request) // Kirim permintaan untuk mengonfigurasi akses real-time.
if err != nil {
log.Fatalf("gagal menempatkan bucket archive direct read %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
}
log.Printf("hasil penempatan bucket archive direct read:%#v\n", result) // Tampilkan hasil.
}