域名操作接口
域名列表查询 ListDomains
查询该用户账户下拥有的加速域名
marker := ""
cli := GetDefaultClient()
domains, nextMarker, err := cli.ListDomains(marker)
fmt.Printf("domains:%+v\n", domains)
fmt.Printf("nextMarker:%+v\n", nextMarker)
fmt.Printf("err:%+v\n", err)
marker
参数表示从这个字符串所代表的索引开始查询域名列表,空表示从头开始。目前服务器处理分页size是一个很大的数,所以使用的时候将marker赋值为空即可。ListDomains返回的nextMarker
表示下一个域名列表索引 ,空表示从marker
开始之后的域名列表全部被获取,非空可用于传递到ListDomains参数。domains
是一个string slice,表示域名列表数据,如: ["1.baidu.com", "2.baidu.com"]
查询用户名下所有域名 GetDomainStatus
查询用户名下所有域名和域名状态,可以根据特定状态查询属于这个状态的域名。
cli := client.GetDefaultClient()
status := "ALL"
domainStatus, err := cli.GetDomainStatus(status, "")
fmt.Printf("domainStatus:%+v\n", domainStatus)
fmt.Printf("err:%+v\n", err)
status
表示域名的状态,如果为ALL
,表示查询所有状态的域名,如果为RUNNING
查询已经加速的域名,STOPPED
查询停止加速的域名,OPERATING
查询操作中的域名。
domainStatus
是DomainStatus类型对象,如下所示:
字段 | 类型 | 说明 |
---|---|---|
Domain | string | 域名,如www.baidu.com |
Status | string | 域名状态,合法值为RUNNING 、STOPPED 和OPERATING |
domainStatus
的示例数据如:[{"Domain":"1.baidu.com", "Status":"RUNNING"}, {"Domain":"2.baidu.com", "Status":"STOPPED"}]
查询域名是否可添加 IsValidDomain
查询特定域名是否可以使用CDN加速,一个可以被添加的域名必须是合法的域名,不可重复添加,必须通过ICP备案。
cli := client.GetDefaultClient()
testDomain := "test_go_sdk.baidu.com"
domainValidInfo, err := cli.IsValidDomain(testDomain)
fmt.Printf("domainValidInfo:%+v\n", domainValidInfo)
fmt.Printf("err:%+v\n", err)
testDomain
是要测试的域名,domainValidInfo
是DomainValidInfo类型对象,表示的是关于是否可添加的详细信息
字段 | 类型 | 说明 |
---|---|---|
Domain | string | 域名,如www.baidu.com |
IsValid | bool | true表示该域名可添加,false表示该域名不可被添加 |
Message | string | 当IsValid为false,表示域名不可被添加的原因;当IsValid为true时,为空 |
创建加速域名接口 CreateDomain
添加一个加速域名到用户名下,该域名在调用IsValidDomain的时候返回必须为true。创建加速域名必须设置源站。
cli := client.GetDefaultClient()
domainCreatedInfo, err := cli.CreateDomain("test_go_sdk.baidu.com", &api.OriginInit{
Origin: []api.OriginPeer{
{
Peer: "1.1.1.1",
Host: "www.baidu.com",
Backup: true,
Follow302: true,
},
{
Peer: "http://2.2.2.2",
Host: "www.baidu.com",
Backup: false,
Follow302: true,
},
},
DefaultHost: "www.baidu.com",
Form: "default",
})
fmt.Printf("domainCreatedInfo:%+v\n", domainCreatedInfo)
fmt.Printf("err:%+v\n", err)
api.OriginPeer
表示一个源站,api.OriginInit
表示对于这个加速域名的源站配置,包括一个或多个源站,和一个默认的会员host,表示为DefaultHost
。Form
表示加速服务类型,默认为default
,其他可选的服务类型有image
表示图片小文件,download
表示大文件下载,media
表示流媒体点播,dynamic
表示动静态加速。
源站信息api.OriginPeer的结构如下:
字段 | 类型 | 说明 |
---|---|---|
Peer | string | 源站的endpoint,如http://2.2.2.2:9090 或 https://test.baidu.com:9090 ,源站类型可以为域名形式、IP形式和bucket,示例代码展示的是IP形式的源站类型,需要注意的是一个域名所有的源站必须具有相同的源站类型。如果使用的是默认端口,即HTTP的80和HTTPS的443,CDN系统会将源站视为HTTP和HTTPS两种协议都支持。 |
Host | string | 表示回源时在HTTP请求头中携带的Host,如果没有设置则使用DefaultHost |
Backup | bool | 表示是否为备用源站,备用源站在主源站都不可用的情况下才会使用,false表示这个源站是主源站。需要注意的是在golang中bool对象默认值为false,如果没有显式设置Backup的值,那么默认就是false。 |
Follow302 | bool | true表示当回源到源站时源站返回302时,CDN系统会处理Location重定向,主动获取资源返回给客户端。false表示当源站返回302时,CDN系统透传302给客户端。需要注意的是,目前Follow302已经修改为所有源站级别的配置,所以要求所有的源站Follow302必须一致,否则可能会出现不可预料的结果。 |
启用/停止/删除加速域名 EnableDomain/DisableDomain/DeleteDomain
cli := client.GetDefaultClient()
testDomain := "test_go_sdk.baidu.com"
// 启用加速域名
err := cli.EnableDomain(testDomain)
fmt.Printf("err:%+v\n", err)
// 停用加速域名
err = cli.DisableDomain(testDomain)
fmt.Printf("err:%+v\n", err)
// 删除该用户名下的加速域名
err = cli.DeleteDomain(testDomain)
fmt.Printf("err:%+v\n", err)