全部产品
Search
文档中心

Object Storage Service:Blokir akses publik untuk bucket (Go SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara mengelola konfigurasi Blokir Akses Publik untuk bucket menggunakan SDK Object Storage Service (OSS) untuk Go V2.

Catatan

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

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

Kode contoh

Aktifkan pemblokiran akses publik untuk bucket

Gunakan kode berikut untuk mengaktifkan Blokir Akses Publik pada sebuah bucket.

package main

import (
	"context" 
	"flag"    
	"log"     

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Paket SDK untuk Alibaba Cloud OSS.
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 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. Nilai default adalah string kosong.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Tetapkan parameter baris perintah untuk menentukan nama bucket. Nilai default adalah string kosong.
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	flag.Parse() // Parsing parameter baris perintah.

	// Periksa apakah nama bucket disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan dan hentikan program.
	}

	// Periksa apakah informasi wilayah disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan dan hentikan program.
	}

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

	client := oss.NewClient(cfg) // Gunakan konfigurasi untuk membuat instance klien OSS.

	// Buat objek PutBucketPublicAccessBlockRequest untuk mengatur konfigurasi Blokir Akses Publik untuk bucket tertentu.
	request := &oss.PutBucketPublicAccessBlockRequest{
		Bucket: oss.Ptr(bucketName), // Tentukan nama bucket untuk operasi.
		PublicAccessBlockConfiguration: &oss.PublicAccessBlockConfiguration{
			oss.Ptr(true), // Aktifkan konfigurasi Blokir Akses Publik.
		},
	}
	putResult, err := client.PutBucketPublicAccessBlock(context.TODO(), request) // Eksekusi permintaan untuk mengatur Blokir Akses Publik.
	if err != nil {
		log.Fatalf("gagal menempatkan blokir akses publik bucket %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

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

Kueri konfigurasi pemblokiran akses publik untuk bucket

Gunakan kode berikut untuk menanyakan konfigurasi Blokir Akses Publik pada sebuah bucket.

package main

import (
	"context" 
	"flag"    
	"log"     

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Paket SDK untuk Alibaba Cloud OSS.
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 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. Nilai default adalah string kosong.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Tetapkan parameter baris perintah untuk menentukan nama bucket. Nilai default adalah string kosong.
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	flag.Parse() // Parsing parameter baris perintah.

	// Periksa apakah nama bucket disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Periksa apakah informasi wilayah disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

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

	client := oss.NewClient(cfg) // Gunakan konfigurasi untuk membuat instance klien OSS.

	// Buat objek GetBucketPublicAccessBlockRequest untuk mendapatkan pengaturan Blokir Akses Publik untuk bucket tertentu.
	request := &oss.GetBucketPublicAccessBlockRequest{
		Bucket: oss.Ptr(bucketName), // Tentukan nama bucket untuk ditanyakan.
	}
	getResult, err := client.GetBucketPublicAccessBlock(context.TODO(), request) // Eksekusi permintaan untuk mendapatkan status Blokir Akses Publik.
	if err != nil {
		log.Fatalf("gagal mendapatkan blokir akses publik bucket %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

	log.Printf("hasil mendapatkan blokir akses publik bucket:%#v\n", getResult) // Cetak hasil Blokir Akses Publik yang diperoleh.
}

Hapus konfigurasi pemblokiran akses publik untuk bucket

Gunakan kode berikut untuk menghapus konfigurasi Blokir Akses Publik pada bucket tertentu.

package main

import (
	"context" 
	"flag"   
	"log"  

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"           // Paket SDK untuk Alibaba Cloud OSS.
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" // 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. Nilai default adalah string kosong.
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	// Tetapkan parameter baris perintah untuk menentukan nama bucket. Nilai default adalah string kosong.
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}


func main() {
	flag.Parse() // Parsing parameter baris perintah.

	// Periksa apakah nama bucket disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

	// Periksa apakah informasi wilayah disediakan. Jika tidak, cetak parameter default dan keluar dari program.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah diperlukan") // Catat kesalahan fatal dan hentikan program.
	}

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

	client := oss.NewClient(cfg) // Gunakan konfigurasi untuk membuat instance klien OSS.

	// Buat objek DeleteBucketPublicAccessBlockRequest untuk menghapus pengaturan Blokir Akses Publik untuk bucket tertentu.
	request := &oss.DeleteBucketPublicAccessBlockRequest{
		Bucket: oss.Ptr(bucketName), // Tentukan nama bucket untuk operasi.
	}
	result, err := client.DeleteBucketPublicAccessBlock(context.TODO(), request) // Eksekusi permintaan untuk menghapus pengaturan Blokir Akses Publik.
	if err != nil {
		log.Fatalf("gagal menghapus blokir akses publik bucket %v", err) // Jika terjadi kesalahan, catat pesan kesalahan dan hentikan program.
	}

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

Referensi

  • Untuk kode contoh lengkap tentang pengelolaan Blokir Akses Publik, lihat Contoh GitHub.

  • Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk mengaktifkan Blokir Akses Publik pada sebuah bucket, lihat PutBucketPublicAccessBlock.

  • Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk menanyakan konfigurasi Blokir Akses Publik sebuah bucket, lihat GetBucketPublicAccessBlock.

  • Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk menghapus konfigurasi Blokir Akses Publik sebuah bucket, lihat DeleteBucketPublicAccessBlock.