Topik ini menjelaskan cara mengkueri wilayah sebuah bucket.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID wilayah
cn-hangzhoudari Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket dengan 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 OSS, lihat Wilayah dan Titik Akhir.Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi Kredensial Akses.
Untuk menanyakan wilayah bucket, Anda harus memiliki izin
oss:GetBucketLocation. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.
Metode
func (c *Client) GetBucketLocation(ctx context.Context, request *GetBucketLocationRequest, optFns ...func(*Options)) (*GetBucketLocationResult, error) Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan, yang dapat digunakan untuk menentukan durasi total permintaan. |
request | *GetBucketLocationRequest | Menentukan parameter operasi API tertentu, seperti nama bucket. Untuk informasi lebih lanjut, lihat GetBucketLocationRequest. |
optFns | ...func(*Options) | Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Parameter respons
Parameter respons | Tipe | Deskripsi |
result | *GetBucketLocationResult | Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, lihat GetBucketLocationResult. |
err | error | Status permintaan. Jika permintaan gagal, nilai err tidak bisa nil. |
Contoh
Berikut ini adalah kode contoh yang menunjukkan cara mengkueri wilayah 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"
)
// Tentukan variabel global.
var (
region string // Wilayah.
bucketName string // Nama bucket.
)
// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "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 tentukan penyedia kredensial serta wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk mengkueri wilayah bucket.
request := &oss.GetBucketLocationRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
}
// Eksekusi permintaan untuk mengkueri wilayah bucket dan proses hasilnya.
result, err := client.GetBucketLocation(context.TODO(), request)
if err != nil {
log.Fatalf("gagal mendapatkan lokasi bucket %v", err)
}
// Tampilkan wilayah bucket.
log.Printf("lokasi bucket:%#v\n", *result.LocationConstraint)
}
Referensi
Untuk kode contoh lengkap yang digunakan untuk mengkueri wilayah bucket, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengkueri wilayah bucket, lihat GetBucketLocation.