All Products
Search
Document Center

Object Storage Service:Blokir akses publik di tingkat titik akses (Go SDK V2)

Last Updated:Nov 09, 2025

Topik ini menjelaskan cara menggunakan OSS SDK untuk Go V2 guna mengelola fitur Blokir Akses Publik di tingkat titik akses.

Catatan

  • Kode contoh dalam topik ini berlaku untuk Wilayah China (Hangzhou) dan menggunakan ID wilayah cn-hangzhou. Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya dalam 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.

Kode contoh

Aktifkan Blokir Akses Publik untuk sebuah titik akses

Anda dapat menggunakan kode berikut untuk mengaktifkan Blokir Akses Publik untuk sebuah titik akses.

package main

import (
	"context" 
	"flag"    
	"log"    

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Impor paket SDK untuk Alibaba Cloud OSS.
	"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.
)
 
func init() {
	// Atur parameter baris perintah untuk menentukan wilayah. Parameter ini kosong secara default.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Atur 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.

	// Tentukan nama titik akses, yang di-hardcode sebagai "nama titik akses" dalam contoh ini. Dalam skenario nyata, nilai ini harus disesuaikan sesuai kebutuhan atau dilewatkan melalui parameter baris perintah.
	var accessPointName = "nama titik akses"

	// Periksa apakah nama bucket telah ditentukan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Periksa apakah informasi wilayah telah diberikan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Buat objek konfigurasi, dan gunakan variabel lingkungan sebagai penyedia kredensial serta tentukan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	client := oss.NewClient(cfg) // Buat instance klien OSS baru menggunakan konfigurasi.

	// Buat permintaan PutAccessPointPublicAccessBlock untuk menetapkan konfigurasi Blokir Akses Publik untuk titik akses tertentu.
	request := &oss.PutAccessPointPublicAccessBlockRequest{
		Bucket:          oss.Ptr(bucketName), // Tentukan nama bucket.
		AccessPointName: oss.Ptr(accessPointName), // Tentukan nama titik akses.
		PublicAccessBlockConfiguration: &oss.PublicAccessBlockConfiguration{
			oss.Ptr(true), // Aktifkan konfigurasi Blokir Akses Publik.
		},
	}
	putResult, err := client.PutAccessPointPublicAccessBlock(context.TODO(), request) // Kirim permintaan untuk menetapkan Blokir Akses Publik untuk titik akses.
	if err != nil {
		log.Fatalf("gagal menetapkan blokir akses publik titik akses %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

	log.Printf("hasil penetapan blokir akses publik titik akses:%#v\n", putResult) // Cetak hasil penetapan Blokir Akses Publik untuk titik akses.
}

Kueri konfigurasi Blokir Akses Publik untuk titik akses tertentu

Anda dapat menggunakan kode berikut untuk menanyakan konfigurasi Blokir Akses Publik untuk sebuah titik akses.

package main

import (
	"context" 
	"flag"   
	"log"   

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Impor paket SDK untuk Alibaba Cloud OSS.
	"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.
)


func init() {
	// Atur parameter baris perintah untuk menentukan wilayah. Parameter ini kosong secara default.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Atur 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.

	// Tentukan nama titik akses. Parameter ini di-hardcode sebagai "nama titik akses" dalam contoh ini. Dalam aplikasi sebenarnya, Anda harus menetapkan parameter ini sesuai kebutuhan atau dengan cara lain.
	var accessPointName = "nama titik akses"

	// Periksa apakah nama bucket telah ditentukan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Periksa apakah informasi wilayah telah diberikan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Buat objek konfigurasi, dan gunakan variabel lingkungan sebagai penyedia kredensial serta tentukan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	client := oss.NewClient(cfg) // Buat instance klien OSS baru menggunakan konfigurasi.

	// Buat permintaan GetAccessPointPublicAccessBlock untuk menanyakan pengaturan Blokir Akses Publik untuk titik akses tertentu.
	request := &oss.GetAccessPointPublicAccessBlockRequest{
		Bucket:          oss.Ptr(bucketName), // Tentukan nama bucket untuk dikueri.
		AccessPointName: oss.Ptr(accessPointName), // Tentukan nama titik akses untuk dikueri.
	}
	getResult, err := client.GetAccessPointPublicAccessBlock(context.TODO(), request) // Jalankan permintaan untuk menanyakan konfigurasi Blokir Akses Publik untuk titik akses.
	if err != nil {
		log.Fatalf("gagal mendapatkan blokir akses publik titik akses %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

	log.Printf("hasil kueri blokir akses publik titik akses:%#v\n", getResult) // Cetak hasil kueri konfigurasi Blokir Akses Publik untuk titik akses.
}

Hapus konfigurasi Blokir Akses Publik untuk titik akses tertentu

Anda dapat menggunakan kode berikut untuk menghapus konfigurasi Blokir Akses Publik untuk sebuah titik akses.

package main

import (
	"context" // Digunakan untuk mengelola konteks dengan fitur seperti tenggat waktu dan sinyal pembatalan.
	"flag"    // Digunakan untuk menganalisis parameter baris perintah.
	"log"     // Digunakan untuk mencetak informasi log.

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Impor paket SDK untuk Alibaba Cloud OSS.
	"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() {
	// Atur parameter baris perintah untuk menentukan wilayah. Parameter ini kosong secara default.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Atur parameter baris perintah untuk menentukan nama bucket. Parameter ini kosong secara default.
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

// Fungsi utama berfungsi sebagai titik masuk program.
func main() {
	flag.Parse() // Analisis parameter baris perintah.

	// Tentukan nama titik akses. Parameter ini di-hardcode sebagai "nama titik akses" dalam contoh ini. Dalam aplikasi sebenarnya, Anda harus menetapkan parameter ini sesuai kebutuhan atau dengan cara lain.
	var accessPointName = "nama titik akses"

	// Periksa apakah nama bucket telah ditentukan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Periksa apakah informasi wilayah telah diberikan. Jika tidak, program mencetak parameter default dan menghentikan tugas.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Buat objek konfigurasi, dan gunakan variabel lingkungan sebagai penyedia kredensial serta tentukan wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	client := oss.NewClient(cfg) // Buat instance klien OSS baru menggunakan konfigurasi.

	// Buat permintaan DeleteAccessPointPublicAccessBlock untuk menghapus pengaturan Blokir Akses Publik untuk titik akses tertentu.
	request := &oss.DeleteAccessPointPublicAccessBlockRequest{
		Bucket:          oss.Ptr(bucketName), // Tentukan nama bucket.
		AccessPointName: oss.Ptr(accessPointName), // Tentukan nama titik akses.
	}
	deleteResult, err := client.DeleteAccessPointPublicAccessBlock(context.TODO(), request) // Kirim permintaan untuk menghapus pengaturan Blokir Akses Publik untuk titik akses.
	if err != nil {
		log.Fatalf("gagal menghapus blokir akses publik titik akses %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

	log.Printf("hasil penghapusan blokir akses publik titik akses:%#v\n", deleteResult) // Cetak hasil penghapusan pengaturan Blokir Akses Publik untuk titik akses.
}

Referensi

  • Untuk kode contoh lengkap untuk mengelola Blokir Akses Publik untuk titik akses, lihat Contoh GitHub.

  • Untuk informasi lebih lanjut tentang operasi API untuk mengaktifkan Blokir Akses Publik untuk sebuah titik akses, lihat PutAccessPointPublicAccessBlock.

  • Untuk informasi lebih lanjut tentang operasi API untuk menanyakan konfigurasi Blokir Akses Publik untuk sebuah titik akses, lihat GetAccessPointPublicAccessBlock.

  • Untuk informasi lebih lanjut tentang operasi API untuk menghapus konfigurasi Blokir Akses Publik untuk sebuah titik akses, lihat DeleteAccessPointPublicAccessBlock.