域名管理
更新时间:2026-10-27
域名管理接口
创建加速域名
Go
1cli := GetDefaultClient()
2originHost := "test.eo.com"
3httpPort := 80
4resp, err := cli.CreateDomain(&api.CreateDomainRequest{
5 SiteId: 1,
6 Domain: "a.test.com",
7 OriginConfig: []api.DomainOriginConfig{
8 {
9 Addr: "1.2.3.4",
10 Type: "IP",
11 UpstreamProtocol: "http",
12 HttpPort: &httpPort,
13 Host: &originHost,
14 },
15 },
16})
17result, _ := json.Marshal(resp)
18fmt.Printf("result: %s\n", result)
19fmt.Printf("err:%+v\n", err)
api.CreateDomainRequest 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Domain | String | 是 | 加速域名,如 www.test.com、*.test.com。 |
| SiteId | Int | 是 | 对应的站点 ID。 |
| OriginConfig | []api.DomainOriginConfig | 否 | 源站配置(IP/域名/对象存储)。 |
| OriginPoolId | String | 否 | 源站池 ID,使用源站池时传。 |
| UpstreamProtocol | String | 否 | 回源协议:http、https、*。使用源站池或负载均衡时必传。 |
| Ipv6Dispatch | *api.Ipv6Dispatch | 否 | 域名 IPv6 配置。 |
| HttpPort | *Int | 否 | HTTP 回源端口。使用源站池/负载均衡时必传,协议 * 时必传。 |
| HttpsPort | *Int | 否 | HTTPS 回源端口。规则同上。 |
| LoadBalanceId | String | 否 | 负载均衡 ID,使用负载均衡时传。 |
api.DomainOriginConfig 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Addr | String | 是 | 源站地址。IP/DOMAIN 传 IP/域名;BUCKET 传 bucket 名。 |
| Type | String | 是 | 源站类型:IP、DOMAIN、BUCKET。 |
| Host | *String | 否 | 回源 host 值。 |
| Weight | *Int | 否 | 权重,仅查询结果中使用源站池/负载均衡作为源站时返回,创建/更新时无需传。 |
| UpstreamProtocol | String | 是 | 回源协议:http、https、*。 |
| HttpPort | *Int | 否 | HTTP 回源端口,协议 * 时必传。 |
| HttpsPort | *Int | 否 | HTTPS 回源端口,协议 * 时必传。 |
| Backup | *Bool | 否 | 查询结果中恒存在且恒为 false(表示主源站);创建/更新时无需传。 |
| ThirdBucketAuth | *api.OriginPoolBucketAuth | 否 | 对象存储鉴权配置,对象存储类型源站必传。 |
api.Ipv6Dispatch 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Enable | String | 是 | IPv6 开关:ON 开启,OFF 关闭。 |
查询加速域名配置
Go
1cli := GetDefaultClient()
2resp, err := cli.QueryDomainConfig("1.test.com")
3if err != nil {
4 fmt.Printf("err:%+v\n", err)
5 return
6}
7
8// 方式一:直接拿到原始 JSON 字符串
9fmt.Printf("config: %s\n", string(resp.Config))
10
11// 方式二:按需解析成自己的结构体
12var cfg struct {
13 Status string `json:"status"`
14 HttpsEnabled string `json:"httpsEnabled"`
15 OriginConfig []api.DomainOriginConfig `json:"originConfig"`
16}
17if err := json.Unmarshal(resp.Config, &cfg); err != nil {
18 fmt.Printf("unmarshal err:%+v\n", err)
19 return
20}
21fmt.Printf("status: %s, httpsEnabled: %s\n", cfg.Status, cfg.HttpsEnabled)
更新加速域名配置
Go
1cli := GetDefaultClient()
2originHost := "test.host.com"
3httpPort := 80
4resp, err := cli.UpdateDomainConfig(&api.UpdateDomainConfigRequest{
5 Site: "your_site.com",
6 Domain: "1.your_site.com", // 与 Domains 二选一,Domain 优先级更高
7 Config: &api.DomainConfigUpdate{
8 OriginConfig: []api.DomainOriginConfig{
9 {
10 Addr: "1.2.3.4",
11 Type: "IP",
12 Host: &originHost,
13 HttpPort: &httpPort,
14 UpstreamProtocol: "http",
15 },
16 },
17 Ipv6Dispatch: &api.Ipv6Dispatch{Enable: "ON"},
18 HttpsEnabled: "ON",
19 CertId: "xxx",
20 },
21})
22result, _ := json.Marshal(resp)
23fmt.Printf("result: %s\n", result)
24fmt.Printf("err:%+v\n", err)
api.UpdateDomainConfigRequest 字段说明:
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Site | String | 是 | 域名所属站点。 |
| Domain | String | 否 | 加速域名,优先级高于 Domains。 |
| Domains | []String | 否 | 批量配置的域名,仅支持证书配置。 |
| Config | *api.DomainConfigUpdate | 是 | 要更新的配置信息。 |
api.DomainConfigUpdate 字段说明(全部可选,按需下发):
| 字段 | 类型 | 说明 |
|---|---|---|
| OriginConfig | []api.DomainOriginConfig | 源站配置(IP/域名/对象存储)。 |
| OriginPoolId | String | 源站池 ID。 |
| UpstreamProtocol | String | 回源协议:http、https、*。 |
| Ipv6Dispatch | *api.Ipv6Dispatch | IPv6 配置。 |
| HttpPort | *Int | HTTP 回源端口。 |
| HttpsPort | *Int | HTTPS 回源端口。 |
| LoadBalanceId | String | 负载均衡 ID。 |
| CertId | String | 证书 ID,HttpsEnabled 为 ON 时必传。 |
| HttpsEnabled | String | HTTPS 开关:ON/OFF。 |
返回 api.DomainOperationResult:
| 字段 | 类型 | 说明 |
|---|---|---|
| Status | String | 操作结果:OK 全部成功,PartialFailed 部分成功。 |
| Total | Int | 需要操作的域名数目。 |
| Success | Int | 操作成功的域名数目。 |
| ErrMsg | String | Status 非 OK 时的错误详情。 |
查询加速域名列表
Go
1cli := GetDefaultClient()
2resp, err := cli.QueryDomains(&api.QueryDomainsRequest{
3 SiteId: 1, // 可选,按站点过滤
4 Keyword: "", // 可选,域名关键字模糊查询
5 Status: "", // 可选,RUNNING/STOPPED/OVERDUE 等,不区分大小写
6 PageNo: 1, // 可选,默认 1
7 PageSize: 10, // 可选,默认 10
8})
9if err != nil {
10 fmt.Printf("err:%+v\n", err)
11 return
12}
13data, _ := json.Marshal(resp)
14fmt.Printf("domains: %s\n", data)
api.QueryDomainsRequest 字段说明(全部可选):
| 字段 | 类型 | 说明 |
|---|---|---|
| SiteId | Int | 站点 ID。 |
| Keyword | String | 域名关键字,模糊查询。 |
| Status | String | 域名状态过滤,不区分大小写,默认 ALL。 |
| PageNo | Int | 页码,默认 1。 |
| PageSize | Int | 每页条数,默认 10。 |
api.QueryDomainsResult 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| SiteDomainCount | Int | 当前站点已创建子域名数(传 siteId 时)。 |
| PlanDomainQuota | Int | 当前套餐子域名额度(传 siteId 时)。 |
| PlanDomainCount | Int | 套餐已创建子域名数(传 siteId 时)。 |
| Domains | []api.DomainSummary | 加速域名列表。 |
| Total | Int | 响应元素个数。 |
| PageNo | Int | 页码。 |
| PageSize | Int | 每页条数。 |
api.DomainSummary 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| Domain | String | 加速域名。 |
| SiteId | Int | 站点 ID。 |
| Cname | String | CNAME 信息。 |
| CnameStatus | *Int | CNAME 状态(响应示例中出现,说明表未列)。 |
| Status | String | 域名状态:RUNNING/STOPPED/OVERDUE。 |
| BanStatus | String | 封禁状态:ADMIN/CLOSURE/USER。 |
| HttpsEnabled | String | HTTPS 开关:ON/OFF。 |
| OriginConfig | []api.DomainOriginConfig | 源站配置,使用负载均衡时为 null。 |
| OriginInformation | String | 源站地址或源站池/负载均衡名称。 |
| OriginType | String | 源站类型。示例中出现的取值:IP/DOMAIN、BUCKET、OriginPool、LoadBalance。 |
| LoadBalanceId | String | 负载均衡 ID。 |
| OriginPoolId | String | 源站池 ID。 |
| OriginPools | *api.DomainOriginPools | 使用负载均衡时的源站配置。 |
| Ipv6Dispatch | *api.Ipv6Dispatch | IPv6 配置。 |
api.DomainOriginPools 字段说明(仅域名使用负载均衡作为源站时返回):
| 字段 | 类型 | 说明 |
|---|---|---|
| Origins | []api.DomainOriginPoolItem | 负载均衡使用的源站池数组,每个元素对应一个源站池。 |
| DispatchMode | String | 负载均衡策略:priority_mode/weight_mode。 |
| SessionMode | String | 会话保持:IP/OFF。 |
| DetectConfig | *api.DetectConfig | 健康探测配置。 |
| FallbackOriginConfig | []api.DomainOriginConfig | 兜底源站池的源站配置,未配置时为空数组。 |
api.DomainOriginPoolItem 字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
| OriginPoolWeight | *Int | 源站池权重,仅 weight_mode(加权轮询)时存在。 |
| OriginConfig | []api.DomainOriginConfig | 该源站池内的源站配置。 |
启用加速域名
Go
1cli := GetDefaultClient()
2
3// 启用单个域名
4resp, err := cli.StartDomain(&api.DomainBatchRequest{
5 Domain: "1.test.com",
6})
7
8// 批量启用域名
9resp, err = cli.StartDomain(&api.DomainBatchRequest{
10 Domains: []string{"1.test.com", "2.test.com"},
11})
12result, _ := json.Marshal(resp)
13fmt.Printf("result: %s\n", result)
14fmt.Printf("err:%+v\n", err)
api.DomainBatchRequest 字段说明(启用/停用/删除域名共用):
| 字段 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
| Domain | String | 否 | 单个加速域名,优先级高于 Domains。 |
| Domains | []String | 否 | 批量操作的域名数组。 |
两者至少传一个。域名必须属于当前用户且属于 EO 产品,否则返回 403。
返回 api.DomainOperationResult:
| 字段 | 类型 | 说明 |
|---|---|---|
| Status | String | 操作结果:OK 全部成功,PartialFailed 部分成功。 |
| Total | Int | 需要操作的域名数目。 |
| Success | Int | 操作成功的域名数目。 |
| ErrMsg | String | Status 非 OK 时的错误详情。 |
停用加速域名
Go
1cli := GetDefaultClient()
2
3// 停用单个域名
4resp, err := cli.StopDomain(&api.DomainBatchRequest{
5 Domain: "1.test.com",
6})
7
8// 批量停用域名
9resp, err = cli.StopDomain(&api.DomainBatchRequest{
10 Domains: []string{"1.test.com", "2.test.com"},
11})
12result, _ := json.Marshal(resp)
13fmt.Printf("result: %s\n", result)
14fmt.Printf("err:%+v\n", err)
域名必须属于当前用户且属于 EO 产品,否则返回 403。
删除加速域名
注意:删除域名不可恢复,批量删除前请确认域名列表无误。
Go
1cli := GetDefaultClient()
2
3// 删除单个域名
4resp, err := cli.DeleteDomain(&api.DomainBatchRequest{
5 Domain: "1.test.com",
6})
7
8// 批量删除域名
9resp, err = cli.DeleteDomain(&api.DomainBatchRequest{
10 Domains: []string{"1.test.com", "2.test.com"},
11})
12result, _ := json.Marshal(resp)
13fmt.Printf("result: %s\n", result)
14fmt.Printf("err:%+v\n", err)
域名必须属于当前用户且属于 EO 产品,否则返回 403。
评价此篇文章
