全部产品
Search
文档中心

Object Storage Service:Akses real-time ke objek Arsip (OSS SDK untuk Go V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan OSS SDK untuk Go V2 untuk mengaktifkan atau menonaktifkan akses real-time ke objek Arsip untuk bucket.

Catatan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou untuk Wilayah Hangzhou, Tiongkok. Secara default, Titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, 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.

Kode contoh

Aktifkan akses real-time ke objek Arsip

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(&region, "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.
}

Periksa apakah akses real-time ke objek Arsip diaktifkan

Anda dapat menggunakan kode berikut untuk memeriksa apakah akses real-time ke objek Arsip diaktifkan.

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(&region, "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 GetBucketArchiveDirectRead untuk memeriksa konfigurasi akses real-time untuk objek Arsip di bucket tertentu (asumsi akses real-time diaktifkan dan dikonfigurasi).
	request := &oss.GetBucketArchiveDirectReadRequest{
		Bucket: oss.Ptr(bucketName), // Tentukan nama bucket.
	}
	result, err := client.GetBucketArchiveDirectRead(context.TODO(), request) // Kirim permintaan untuk memeriksa konfigurasi (asumsi akses real-time diaktifkan dan dikonfigurasi).
	if err != nil {
		log.Fatalf("gagal mendapatkan akses langsung arsip bucket %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

	log.Printf("hasil mendapatkan akses langsung arsip bucket:%#v\n", result) // Tampilkan konfigurasi (asumsi akses real-time diaktifkan dan dikonfigurasi).
}

Referensi

  • Untuk kode contoh lengkap untuk mengaktifkan akses real-time ke objek Arsip, lihat Contoh GitHub.

  • Untuk informasi lebih lanjut tentang operasi API untuk mengaktifkan akses real-time ke objek Arsip, lihat PutBucketArchiveDirectRead.

  • Untuk informasi lebih lanjut tentang operasi API untuk memeriksa apakah akses real-time ke objek Arsip diaktifkan, lihat GetBucketArchiveDirectRead.