Topik ini menjelaskan cara menggunakan Go SDK V2 untuk menanyakan informasi titik akhir dari semua Wilayah yang didukung atau Wilayah tertentu. Informasi tersebut mencakup Titik akhir publik (IPv4), Titik akhir internal (jaringan klasik atau VPC), dan Titik akhir percepatan (akselerasi unggah dan unduh global).
Catatan penggunaan
Anda dapat menanyakan informasi titik akhir untuk semua Wilayah yang didukung atau Wilayah tertentu, terlepas dari apakah Anda telah membuat bucket di wilayah tersebut.
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah China (Hangzhou) sebagai contoh. Secara default, Titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan Titik akhir internal. Untuk informasi lebih lanjut tentang Wilayah dan Titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.Contoh dalam topik ini menunjukkan cara memperoleh kredensial akses dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Mengquery titik akhir dari semua wilayah yang didukung
Berikut adalah kode contoh untuk menanyakan informasi titik akhir dari semua Wilayah yang didukung.
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 untuk menyimpan parameter baris perintah.
var (
region string
)
// Fungsi init digunakan untuk menginisialisasi parser parameter baris perintah dan menetapkan nilai default serta pesan bantuan untuk setiap parameter.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada. Diperlukan.")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
// Periksa apakah parameter region yang diperlukan kosong.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, region diperlukan")
}
// Muat konfigurasi default, atur penyedia kredensial (dari variabel lingkungan), dan tentukan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk menanyakan semua wilayah.
request := &oss.DescribeRegionsRequest{}
// Kirim permintaan untuk menanyakan semua wilayah.
result, err := client.DescribeRegions(context.TODO(), request)
if err != nil {
log.Fatalf("gagal mendeskripsikan wilayah %v", err)
}
// Cetak hasil query.
for _, region := range result.RegionInfoList.RegionInfos {
// Cetak informasi wilayah, serta titik akhir publik, titik akhir internal, dan titik akhir percepatan yang sesuai.
log.Printf("wilayah:%s, titik akhir publik:%s, titik akhir internal:%s, titik akhir percepatan:%s\n", *region.Region, *region.InternetEndpoint, *region.InternalEndpoint, *region.AccelerateEndpoint)
}
}
Mengquery titik akhir wilayah tertentu
Berikut adalah kode contoh untuk menanyakan informasi titik akhir dari Wilayah tertentu.
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 untuk menyimpan parameter baris perintah.
var (
region string
)
// Fungsi init digunakan untuk menginisialisasi parser parameter baris perintah dan menetapkan nilai default serta pesan bantuan untuk setiap parameter.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada. Diperlukan.")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
// Periksa apakah parameter region yang diperlukan kosong.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, region diperlukan")
}
// Muat konfigurasi default, atur penyedia kredensial (dari variabel lingkungan), dan tentukan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk menanyakan semua wilayah.
request := &oss.DescribeRegionsRequest{
Regions: oss.Ptr("oss-cn-hangzhou"), // Wilayah China (Hangzhou) digunakan sebagai contoh. Atur nilainya menjadi oss-cn-hangzhou. Untuk wilayah lainnya, tentukan nilai sebenarnya.
}
// Kirim permintaan untuk menanyakan semua wilayah.
result, err := client.DescribeRegions(context.TODO(), request)
if err != nil {
log.Fatalf("gagal mendeskripsikan wilayah %v", err)
}
// Cetak hasil query.
for _, region := range result.RegionInfoList.RegionInfos {
// Cetak informasi wilayah, serta titik akhir publik, titik akhir internal, dan titik akhir percepatan yang sesuai.
log.Printf("wilayah:%s, titik akhir publik:%s, titik akhir internal:%s, titik akhir percepatan:%s\n", *region.Region, *region.InternetEndpoint, *region.InternalEndpoint, *region.AccelerateEndpoint)
}
}
Referensi
Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk menanyakan informasi titik akhir, lihat DescribeRegions.