本文介绍如何使用Go SDK V2查询所有支持地域或者指定地域对应的Endpoint信息,包括外网访问(IPv4)Endpoint、内网访问(经典网络或VPC网络)Endpoint和传输加速域名(全地域上传下载加速)Endpoint。
注意事项
查询所有支持地域或者指定地域对应的Endpoint信息与OSS的地域支持情况相关,与您在该地域是否创建Bucket无关。
本文示例代码以华东1(杭州)的地域ID
cn-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(®ion, "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(®ion, "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)
- 注意事项
- 查询所有支持地域对应的Endpoint信息
- 查询指定地域对应的Endpoint信息
- 相关文档