本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

Go查詢Endpoint資訊

更新時間:2025-02-21 19:04

本文介紹如何使用Go SDK V2查詢所有支援地區或者指定地區對應的Endpoint資訊,包括外網訪問(IPv4)Endpoint、內網訪問(傳統網路或VPC網路)Endpoint和傳輸加速網域名稱(全地區上傳下載加速)Endpoint。

注意事項

  • 查詢所有支援地區或者指定地區對應的Endpoint資訊與OSS的地區支援情況相關,與您在該地區是否建立Bucket無關。

  • 本文範例程式碼以華東1(杭州)的地區IDcn-hangzhou為例,預設使用外網Endpoint,如果您希望通過與OSS同地區的其他阿里雲產品訪問OSS,請使用內網Endpoint。關於OSS支援的Region與Endpoint的對應關係,請參見OSS地區和訪問網域名稱

  • 本文以從環境變數讀取存取憑證為例。如何配置訪問憑證,請參見配置訪問憑證

查詢所有支援地區對應的Endpoint資訊

以下代碼用於查詢所有支援地區對應的Endpoint資訊。

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"
)

// 定義全域變數用於儲存命令列參數
var (
	region string 
)

// init函數用於初始化命令列參數解析器,並為每個參數設定預設值與協助資訊
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located. Required.")
}

func main() {
	// 解析命令列參數
	flag.Parse()

	// 檢查必填參數:region是否為空白
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// 載入預設配置並設定憑證提供者(從環境變數中讀取)和指定地區
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// 建立OSS用戶端
	client := oss.NewClient(cfg)

	// 建立查詢所有地區的請求
	request := &oss.DescribeRegionsRequest{}

	// 發送查詢所有地區的請求
	result, err := client.DescribeRegions(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to describe regions %v", err)
	}

	// 列印查詢結果
	for _, region := range result.RegionInfoList.RegionInfos {
		// 列印地區資訊,對應的公網訪問網域名稱、內網訪問網域名稱和加速訪問網域名稱
		log.Printf("region:%s, public endpoint:%s, internal endpoint:%s, acceleration endpoint:%s\n", *region.Region, *region.InternetEndpoint, *region.InternalEndpoint, *region.AccelerateEndpoint)
	}
}

查詢指定地區對應的Endpoint資訊

以下代碼用於查詢指定地區對應的Endpoint資訊。

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"
)

// 定義全域變數用於儲存命令列參數
var (
	region string
)

// init函數用於初始化命令列參數解析器,並為每個參數設定預設值與協助資訊
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located. Required.")
}

func main() {
	// 解析命令列參數
	flag.Parse()

	// 檢查必填參數:region是否為空白
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// 載入預設配置並設定憑證提供者(從環境變數中讀取)和指定地區
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// 建立OSS用戶端
	client := oss.NewClient(cfg)

	// 建立查詢所有地區的請求
	request := &oss.DescribeRegionsRequest{
		Regions: oss.Ptr("oss-cn-hangzhou"), // 以華東1(杭州)為例,填寫為oss-cn-hangzhou。其它Region請按實際情況填寫
	}

	// 發送查詢所有地區的請求
	result, err := client.DescribeRegions(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to describe regions %v", err)
	}

	// 列印查詢結果
	for _, region := range result.RegionInfoList.RegionInfos {
		// 列印地區資訊,對應的公網訪問網域名稱、內網訪問網域名稱和加速訪問網域名稱
		log.Printf("region:%s, public endpoint:%s, internal endpoint:%s, acceleration endpoint:%s\n", *region.Region, *region.InternetEndpoint, *region.InternalEndpoint, *region.AccelerateEndpoint)
	}
}

相關文檔

  • 關於查詢地區對應Endpoint資訊的API介面描述,請參見DescribeRegions

  • 本頁導讀 (1, M)
  • 注意事項
  • 查詢所有支援地區對應的Endpoint資訊
  • 查詢指定地區對應的Endpoint資訊
  • 相關文檔
文檔反饋