内容分发网络CDN

    域名配置接口

    查询加速域名详情 GetDefaultClient

    查询某个特定域名的全部配置信息

    cli := client.GetDefaultClient()                    
    testDomain := "test_go_sdk.baidu.com"               
    domainConfig, err := cli.GetDomainConfig(testDomain)
    fmt.Printf("domainConfig:%+v\n", domainConfig)      
    fmt.Printf("err:%+v\n", err)                        

    domainConfig*api.DomainConfig类型的对象,他的结构相对比较复杂,如下所示:

    字段 类型 说明
    Domain string 域名信息,如:test.baidu.com
    Cname string 域名的CNAME,如:test.baidu.com.a.bdydns.com
    Status string 域名状态,合法值为RUNNINGSTOPPEDOPERATING
    CreateTime string 域名创建的时间,UTC时间,如:2019-09-02T10:08:38Z。
    LastModifyTime string 上次修改域名配置的时间,UTC时间,如:2019-09-06T15:00:21Z
    IsBan string 是否被禁用,禁用的意思是欠费或者其他违规操作被系统封禁,被封禁的域名不拥有加速服务。ON表示为被封禁,YES表示被封禁了。
    Origin []api.OriginPeer 源站信息,在创建加速域名接口有详细说明。
    DefaultHost string 默认的回源host,在创建加速域名接口有详细说明。
    CacheTTL []api.CacheTTL 文件类型与路径的缓存策略,在设置/查询缓存过期规则小段有详细说明。
    LimitRate int 下载限速,单位Byte/s。
    RequestAuth api.RequestAuth 访问鉴权配置,在设置访问鉴权有详细说明。
    Https api.HTTPSConfig HTTPS加速配置,在设置HTTPS加速有详细说明。
    FollowProtocol bool 是否开启了协议跟随回源,true表示开启了协议跟随回源,即访问资源是https://xxx或http://xxx之类的url,回源也使用相对应的scheme,即分别为HTTPS和HTTP。
    SeoSwitch api.SeoSwitch seo 开关配置,在设置SEO开关属性有详细说明。

    设置/查询缓存过期规则 SetCacheTTL/GetCacheTTL

    设置针对文件、目录和错误码等相关的缓存策略,合理设置缓存策略可以提高命中率。

    cli := client.GetDefaultClient()                    
    testDomain := "test_go_sdk.baidu.com"               
                                                        
    // 设置缓存策略使用源站规则                                   
    err := cli.SetCacheTTL(testDomain, []api.CacheTTL{  
    	{                                               
    		Type:  "origin",                            
    		Value: "-",                                 
    		TTL:   0,                                   
    	},                                              
    })                                                  
    fmt.Printf("err:%+v\n", err)                        
                                                        
    // 设置缓存策略,分别设置后缀规则、目录规则、路径完全匹配和错误码                                      
    err = cli.SetCacheTTL(testDomain, []api.CacheTTL{   
    	{                                               
    		Type:   "suffix",                           
    		Value:  ".jpg",                             
    		TTL:    420000,                             
    		Weight: 30,                                 
    	},                                              
    	{                                               
    		Type:  "path",                              
    		Value: "/js",                               
    		TTL:   10000,                               
    	},                                              
    	{                                               
    		Type:   "exactPath",                        
    		Value:  "index.html",                       
    		TTL:    600,                                
    		Weight: 100,                                
    	},                                              
    	{                                               
    		Type:   "code",                             
    		Value:  "404",                              
    		TTL:    600,                                
    		Weight: 100,                                
    	},                                              
    })                                                  
    fmt.Printf("err:%+v\n", err)                        
                                                        
    // 查询缓存策略                                           
    cacheTTls, err := cli.GetCacheTTL(testDomain)       
    fmt.Printf("cacheTTls:%+v\n", cacheTTls)            
    fmt.Printf("err:%+v\n", err)                        

    cacheTTls包含全部的缓存策略,每一个缓存策略用api.CacheTTL类型的对象表示,如下关于缓存策略结构的说明。

    字段 类型 说明
    Type string 缓存策略的类型。合法的类型有:suffixpathorigincodeexactPath。"suffix"表示文件名后缀,"path"表示url中的目录,"origin"表示源站规则,此规则只有一条,只表示出权重即可,value为"-", ttl为 0,"code"表示异常码缓存,如可以配置404缓存100s ,“exactPath”表示路径完全匹配。
    Value string Type所指定类型的配置规则。
    Weight int 权重,0-100的整数,权重越高优先级越高,默认为0,优先级在为code类型下是没有作用的,可以忽略。权重越大,优先级越高,规则优先生效。不推荐两条缓存策略配置相同的权重,如果权重相同,会随机选择其中一条策略生效。
    TTL int 缓存时间,单位为秒。

    设置/查询缓存参数过滤规则 SetCacheUrlArgs/GetCacheUrlArgs

    设置缓存key,缓存key为CDN系统对某个资源的进行缓存的时候所采用的key,一个url可能带有很多参数,那么时候所有的参数都需要放在缓存key中呢?其实是不必的,下面展示了不同的设置。

    cli := client.GetDefaultClient()                          
    testDomain := "test_go_sdk.baidu.com"                     
                                                              
    // 设置全URL缓存                                               
    err := cli.SetCacheUrlArgs(testDomain, &api.CacheUrlArgs{ 
    	CacheFullUrl: true,                                   
    })                                                        
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 设置缓存带有部分参数                                             
    err = cli.SetCacheUrlArgs(testDomain, &api.CacheUrlArgs{  
    	CacheFullUrl: false,                                  
    	CacheUrlArgs: []string{"name", "id"},                 
    })                                                        
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 设置忽略所有参数                                               
    err = cli.SetCacheUrlArgs(testDomain, &api.CacheUrlArgs{  
    	CacheFullUrl: false,                                  
    	CacheUrlArgs: []string{"name", "id"},                 
    })                                                        
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 查询关于URL参数缓存设置                                          
    cacheUrlArgs, err := cli.GetCacheUrlArgs(testDomain)      
    fmt.Printf("cacheUrlArgs:%+v\n", cacheUrlArgs)            

    cacheUrlArgsapi.CacheUrlArgs类型的对象,下面是详细说明:

    字段 类型 说明
    CacheFullUrl bool true或false,true表示支持全URL缓存,false表示忽略参数缓存(可保留部分参数)。注意golang中如果不显式赋值CacheFullUrl为true或false,那么取零值false。
    CacheUrlArgs []string CacheFullUrl为true时,此项不起作用;CacheFullUrl为false时,此项表示保留的参数列表,如果为空,表示忽略所有参数。

    设置/查询自定义错误码页面 SetErrorPage/GetErrorPage

    用户可以定义当访问源站或CDN系统内部出现错误时(通常是返回4xx或5xx错误码),有CDN系统返回给用户的重定向页面,用户可以设置这个重定向页面的链接。

    cli := client.GetDefaultClient()                        
    testDomain := "test_go_sdk.baidu.com"                   
                                                            
    // 设置错误出现时的重定向页面                                        
    err := cli.SetErrorPage(testDomain, []api.ErrorPage{    
    	{                                                   
    		Code:         510,                              
    		RedirectCode: 301,                              
    		Url:          "/customer_404.html",             
    	},                                                  
    	{                                                   
    		Code: 403,   
        // 这里没有设置RedirectCode,表示使用默认的302重定向
    		Url:  "/custom_403.html",                       
    	},                                                  
    })                                                      
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 取消设置错误出现时的重定向页面                                      
    err = cli.SetErrorPage(testDomain, []api.ErrorPage{})   
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 设置错误出现时的重定向页面                                        
    err = cli.SetErrorPage(testDomain, []api.ErrorPage{})   
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 查询设置的错误重定向页面                                         
    errorPages, err := cli.GetErrorPage(testDomain)         
    fmt.Printf("errorPages:%+v\n", errorPages)              

    errorPages[]api.ErrorPage类型的对象,api.ErrorPage结构的详细说明如下:

    字段 类型 说明
    Code int 特定的状态码,要求必须为HTTP的标准错误码,且不能是408、444、499等客户端异常/提前断开这类特殊状态码。
    RedirectCode int 重定向状态码,当出现code错误码时,重定向的类型。支持301和302,默认302。
    Url string 重定向目标地址 ,当出现code错误码是,重定向到这个用户自定义的url,即301或302重定向中HTTP报文中的Location的值为了Url。

    设置/查询访问Referer控制 SetRefererACL/GetRefererACL

    设置Referer的访问控制规则,当通过浏览器或者其他形式跳转到资源是,浏览器通常会在请求头中加入Referer信息。CDN系统提供对Referer进行过滤,可以设置Referer黑名单或者白名单。当Referer出现在黑名单中的请求到达时响应403,当Referer没有出现在白名单中的请求到达时响应403。黑名单和白名单设置只能选其一,要么设置黑名单要么设置白名单。当设置了白名单并且过滤规则为空时,白名单不生效。

    cli := client.GetDefaultClient()                          
    testDomain := "test_go_sdk.baidu.com"   
    isAllowEmpty := true
                                                              
    // 设置白名单ACL                                               
    err := cli.SetRefererACL(testDomain, nil, []string{       
    	"a.bbbbbb.c",                                         
    	"*.baidu.com.*",                                      
    }, isAllowEmpty)                                                  
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 设置白名单为空,白名单规则不生效                                           
    err = cli.SetRefererACL(testDomain, nil, []string{}, isAllowEmpty)
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 设置黑名单ACL                                               
    err = cli.SetRefererACL(testDomain, []string{             
    	"a.b.c",                                              
    	"*.xxxxx.com.*",                                      
    }, nil, isAllowEmpty)                                             
    fmt.Printf("err:%+v\n", err)                              
                                                              
    // 查询referer ACL设置                                        
    refererACL, err := cli.GetRefererACL(testDomain)          
    fmt.Printf("refererACL:%+v\n", refererACL)                
    fmt.Printf("err:%+v\n", err)                              

    isAllowEmpty表示是否允许空Referer访问,true表示允许空Referer访问,即如果Referer为空,那么不管是设置了黑名单还是白名单都不会生效,大多数情况下这个值都设置为true;false表示不允许空Referer访问,当设置为false时,如果访问的HTTP报文中不存在Referer那么CDN系统将返回403。refererACLapi.RefererACL类型的对象,他的详细说明如下:

    字段 类型 说明
    BlackList []string 可选项,表示referer黑名单列表,支持使用通配符∗,不需要加protocol,如设置某个黑名单域名,设置为"www.xxx.com"形式即可,而不是"http://www.xxx.com"。
    WhiteList []string 可选项,list类型,表示referer白名单列表,支持通配符∗,同样不需要加protocol。
    AllowEmpty bool 必选项,bool类型,表示是否允许空referer访问,为true即允许空referer访问。

    设置/查询访问IP控制 SetIpACL/GetIpACL

    CDN获取客户端IP,同配置中的IP黑/白名单进行匹配,对匹配上的客户端请求进行拒绝/放过。

    cli := client.GetDefaultClient()              
    testDomain := "test_go_sdk.baidu.com"         
                                                  
    // 设置IP白名单                                    
    err := cli.SetIpACL(testDomain, []string{     
    	"1.1.1.1",                                
    	"2.2.2.2",                                
    }, nil)                                       
    fmt.Printf("err:%+v\n", err)                  
                                                  
    // 设置IP黑名单,CIDR格式的IP                            
    err = cli.SetIpACL(testDomain, nil, []string{ 
    	"1.2.3.4/24",                             
    })                                            
    fmt.Printf("err:%+v\n", err)   
    
    // 查询IP黑白设置                           
    ipACL, err := cli.GetIpACL(testDomain)
    fmt.Printf("ipACL:%+v\n", ipACL)      
    fmt.Printf("err:%+v\n", err)          

    ipACLapi.IpACL类型对象,详细说明如下:

    字段 类型 说明
    BlackList []string IP黑名单列表,当设置黑名单生效时,当客户端的IP属于BlackList,CDN系统返回403。BlackList不可与WhiteList同时设置。
    WhiteList []string IP白名单列表,当设置白名单生效时,当WhiteList为空时,没有白名单效果。当WhiteList非空时,只有客户端的IP属于WhiteList才允许访问。同样不可与BlackList同时设置。

    设置访问鉴权 SetDomainRequestAuth

    高级鉴权也是为了防止客户源站内容被盗用,比Referer黑白名单和IP黑白名单更加安全。

    cli := client.GetDefaultClient()                              
    testDomain := "test_go_sdk.baidu.com"                         
    err := cli.SetDomainRequestAuth(testDomain, &api.RequestAuth{ 
    	Type:    "c",                                             
    	Key1:    "secretekey1",                                   
    	Key2:    "secretekey2",                                   
    	Timeout: 300,                                             
    	WhiteList: []string{                                      
    		"/crossdomain.xml",                                   
    	},                                                        
    	SignArg: "sign",                                          
    	TimeArg: "t",                                             
    })                                                            
                                                                  
    fmt.Printf("err:%+v\n", err)                                  

    示例代码设置一个C类鉴权方式,对应的字段在高级鉴权。有非常消息的说明。

    设置域名限速 SetLimitRate

    限定此域名下向客户端传输的每份请求的最大响应速率。该速率是针对单个请求的,多请求自动翻倍。

    cli := client.GetDefaultClient()                
    testDomain := "test_go_sdk.baidu.com"           
                                                    
    // 设置单请求限速1024Bytes/s                           
    err := cli.SetLimitRate(testDomain, 1024)       
    fmt.Printf("err:%+v\n", err)                    
                                                    
    // 不做任何限速                                       
    err = cli.SetLimitRate(testDomain, 0)           
    fmt.Printf("err:%+v\n", err)                                          

    设置/查询Cors跨域 SetCors/GetCors

    跨域访问是指发起请求的资源所在域不同于该请求所指向的资源所在域,出于安全考虑,浏览器会限制这种非同源的访问。开启此功能,用户可以自己进行清除缓存及跨域访问配置,当源站(BOS)对象更新后,CDN所有对应的缓存可进行同步自动更新。

    cli := client.GetDefaultClient()                       
    testDomain := "test_go_sdk.baidu.com"                  
                                                           
    // 设置允许的跨域域名                                           
    err := cli.SetCors(testDomain, true, []string{         
    	"http://www.baidu.com",                            
    	"http://*.bce.com",                                
    })                                                     
    fmt.Printf("err:%+v\n", err)                           
                                                           
    // 取消跨域设置                                              
    err = cli.SetCors(testDomain, false, nil)              
    fmt.Printf("err:%+v\n", err)                           
                                                           
    // 查询跨域设置                                              
    cors, err := cli.GetCors(testDomain)                   
    fmt.Printf("cors:%+v\n", cors)                         
    fmt.Printf("err:%+v\n", err)                           

    设置/查询IP访问限频 SetAccessLimit/GetAccessLimit

    限制IP单节点的每秒访问次数,针对所有的访问路径。

    cli := client.GetDefaultClient()                        
    testDomain := "test_go_sdk.baidu.com"                   
                                                            
    // 设置单IP访问限频为200/s                                      
    err := cli.SetAccessLimit(testDomain, &api.AccessLimit{ 
    	Enabled: true,                                      
    	Limit:   200,                                       
    })                                                      
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 取消IP访问限频                                             
    err = cli.SetAccessLimit(testDomain, &api.AccessLimit{  
    	Enabled: false,                                     
    	Limit:   0,                                         
    })                                                      
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 查询IP访问限频设置                                           
    accessLimit, err := cli.GetAccessLimit(testDomain)      
    fmt.Printf("accessLimit:%+v\n", accessLimit)            
    fmt.Printf("err:%+v\n", err)                            

    accessLimitapi.AccessLimit类型的对象,详细说明如下:

    字段 类型 说明
    Enabled bool true表示开启IP单节点访问限频,false表示取消限频。这里要注意golang的bool对象的零值为false,设置Limit的值必须要设置Enabled为true。
    Limit int 1秒内单个IP节点请求次数上限,enabled为true时此项默认为1000,enabled为false此项无意义。

    设置/查询获取真实用户IP SetClientIp/GetClientIp

    用户在使用CDN加速的同时可获取访问源的真实IP地址或客户端IP地址.。

    cli := client.GetDefaultClient()                              
    testDomain := "test_go_sdk.baidu.com"                         
                                                                  
    // 设置Client IP,源站可以获取到访问源的客户端IP地址,携带True-Client-Ip         
    err := cli.SetClientIp(testDomain, &api.ClientIp{             
    	Enabled: true,                                            
    	Name:    "True-Client-IP",                                
    })                                                            
    fmt.Printf("err:%+v\n", err)                                  
                                                                  
    // 设置Real IP:源站可以获取到访问源的真实IP地址,携带X-Real-IP。               
    err = cli.SetClientIp(testDomain, &api.ClientIp{              
    	Enabled: true,                                            
    	Name:    "X-Real-IP",                                     
    })                                                            
    fmt.Printf("err:%+v\n", err)                                  
                                                                  
    // 关闭设置Client IP和Real IP                                      
    err = cli.SetClientIp(testDomain, &api.ClientIp{              
    	Enabled: false,                                           
    })                                                            
    fmt.Printf("err:%+v\n", err)                                  
           
    // 查询关于客户端IP的设置
    clientIp, err := cli.GetClientIp(testDomain)                  
    fmt.Printf("err:%+v\n", err)                                  
    fmt.Printf("clientIp:%+v\n", clientIp)                        

    clientIpapi.ClientIp类型的对象,详细说明如下:

    字段 类型 说明
    Enabled bool true表示开启,false表示关闭。
    Name string 只能设置为"True-Client-Ip"或"X-Real-IP"两种之一,默认为"True-Client-Ip",enabled为false时此项无意义。

    更新加速域名回源地址 SetDomainOrigin

    加速域名的回源地址可以在创建域名的时候设置好,也可以在创建完成后进行更新。

    cli := client.GetDefaultClient()                        
    testDomain := "test_go_sdk.baidu.com"                   
                                                            
    err := cli.SetDomainOrigin(testDomain, []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,                                
    	},                                                  
    }, "www.baidu.com")                                     
    fmt.Printf("err:%+v\n", err)                            

    api.OriginPeer类型的详细说明在创建加速域名一节已经有说明。

    设置协议跟随回源 SetFollowProtocol

    设置协议跟随回源,表示CDN节点回源协议与客户端访问协议保持一致。

    cli := client.GetDefaultClient()                         
    testDomain := "test_go_sdk.baidu.com"                    
                                                             
    // 设置协议跟随回源                                              
    err := cli.SetFollowProtocol(testDomain, true)           
    fmt.Printf("err:%+v\n", err)                             
                                                             
    // 取消设置协议跟随回源                                            
    err = cli.SetFollowProtocol(testDomain, false)           
    fmt.Printf("err:%+v\n", err)                           

    设置/查询Range回源 SetRangeSwitch/GetRangeSwitch

    设置Range回源,有助于减少大文件分发时回源消耗并缩短响应时间。此功能需源站支持Range请求。

    cli := client.GetDefaultClient()                      
    testDomain := "test_go_sdk.baidu.com"                 
                                                          
    // 设置range回源                                          
    err := cli.SetRangeSwitch(testDomain, true)           
    fmt.Printf("err:%+v\n", err)                          
                                                          
    // 取消设置range回源                                        
    err = cli.SetRangeSwitch(testDomain, false)           
    fmt.Printf("err:%+v\n", err)                          
                                                          
    // 查询range回源设置                                        
    rangeSwitch, err := cli.GetRangeSwitch(testDomain)    
    fmt.Printf("rangeSwitch:%+v\n", rangeSwitch)          

    设置/查询移动访问控制 SetMobileAccess/GetMobileAccess

    开启移动访问控制,源站可有针对性地进行移动端/PC端的资源内容分发,暂不支持自定义进行移动端配置。

    cli := client.GetDefaultClient()                        
    testDomain := "test_go_sdk.baidu.com"                   
                                                            
    // 设置移动访问                                               
    err := cli.SetMobileAccess(testDomain, true)            
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 取消设置移动访问                                             
    err = cli.SetMobileAccess(testDomain, false)            
    fmt.Printf("err:%+v\n", err)                            
                                                            
    // 查询移动访问设置                                             
    mobileAccess, err := cli.GetMobileAccess(testDomain)    
    fmt.Printf("mobileAccess:%+v\n", mobileAccess)          
    fmt.Printf("err:%+v\n", err)                            

    设置/查询HttpHeader SetHttpHeader/GetHttpHeader

    CDN支持CDN节点到客户端的response(HTTP响应头)、CDN节点到源站的request(HTTP请求头)中的header信息修改。

    cli := client.GetDefaultClient()                              
    testDomain := "test_go_sdk.baidu.com"                         
                                                                  
    // 设置CDN系统工作时增删的HTTP请求头                                       
    err := cli.SetHttpHeader(testDomain, []api.HttpHeader{        
    	{                                                         
    		Type:   "origin",                                     
    		Header: "x-auth-cn",                                  
    		Value:  "xxxxxxxxx",                                  
    		Action: "remove",                                     
    	},                                                        
    	{                                                         
    		Type:   "response",                                   
    		Header: "content-type",                               
    		Value:  "application/octet-stream",                   
    		Action: "add",                                        
    	},                                                        
    })                                                            
    fmt.Printf("err:%+v\n", err)                                  
                                                                  
    // 取消CDN系统工作时增删的HTTP请求头                                       
    err = cli.SetHttpHeader(testDomain, []api.HttpHeader{})       
    fmt.Printf("err:%+v\n", err)                                  
                                                                  
    // 查询CDN系统工作时增删的HTTP请求头                                       
    headers, err := cli.GetHttpHeader(testDomain)                 
    fmt.Printf("headers:%+v\n", headers)                          
    fmt.Printf("err:%+v\n", err)                                  

    headersapi.HttpHeader类型的对象,详细说明如下:

    字段 类型 说明
    Type string "origin"表示此header 回源生效,"response"表示给用户响应时生效。
    Header string header为http头字段,一般为HTTP的标准Header,也可以是用户自定义的;如x-bce-authoriztion。
    Value string 指定Header的值。
    Action string 表示是删除还是添加,可选remove/add,默认是add;目前console只支持add action; API做后端remove配置的兼容。
    Describe string 描述,可选,可以是中文,统一使用Unicode统码;长度不能超过100个字符。

    设置/查询SEO开关属性 SetDomainSeo/GetDomainSeo

    SEO(Search Engine Optimization)优化是一种利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名的方式。目前CDN系统支持两项优化配置:(1)搜索引擎开启自动回源;(2)数据与百度搜索链接。

    cli := client.GetDefaultClient()                     
    testDomain := "test_go_sdk.baidu.com"                
                                                         
    // 设置SEO优化                                           
    err := cli.SetDomainSeo(testDomain, &api.SeoSwitch{  
    	DirectlyOrigin: "ON",                            
    	PushRecord:     "OFF",                           
    })                                                   
    fmt.Printf("err:%+v\n", err)                         
                                                         
    // 查询SEO优化设置                                         
    seoSwitch, err := cli.GetDomainSeo(testDomain)       
    fmt.Printf("seoSwitch:%+v\n", seoSwitch)             
    fmt.Printf("err:%+v\n", err)                         

    seoSwitchapi.SeoSwitch类型的对象,详细说明如下:

    字段 类型 说明
    DirectlyOrigin string ON表示设置直接回源,OFF则相反。
    PushRecord string ON表示给大搜推送访问记录,OFF则相反。

    设置/查询页面优化 SetFileTrim/GetFileTrim

    用户开启页面优化功能,将自动删除 html中的注释以及重复的空白符,这样可以有效地去除页面的冗余内容,减小文件体积,提高加速分发效率。

    cli := client.GetDefaultClient()          
    testDomain := "test_go_sdk.baidu.com"     
                                              
    // 设置页面优化                                 
    err := cli.SetFileTrim(testDomain, true)  
    fmt.Printf("err:%+v\n", err)              
                                              
    // 取消页面优化                                 
    err = cli.SetFileTrim(testDomain, false)  
    fmt.Printf("err:%+v\n", err)              
                                              
    // 查询页面优化设置                               
    fileTrim, err := cli.GetFileTrim(testDomai
    fmt.Printf("fileTrim:%+v\n", fileTrim)    
    fmt.Printf("err:%+v\n", err)              

    设置/查询视屏拖拽 SetMediaDrag/GetMediaDrag

    CDN支持flv与mp4视频类型的拖拽,开启拖拽可降低回源率,提升速度。

    cli := client.GetDefaultClient()                       
    testDomain := "test_go_sdk.baidu.com"                  
                                                           
    // 设置视频拖拽设置                                            
    err := cli.SetMediaDrag(testDomain, &api.MediaDragConf{
    	Mp4: &api.MediaCfg{                                
    		DragMode: "second",                            
    		FileSuffix: []string{                          
    			"mp4",                                     
    			"m4a",                                     
    			"m4z",                                     
    		},                                             
    		StartArgName: "startIndex",                    
    	},                                                 
    	Flv: &api.MediaCfg{                                
    		DragMode:   "byteAV",                          
    		FileSuffix: []string{},                        
    	},                                                 
    })                                                     
    fmt.Printf("err:%+v\n", err)                           
                                                           
    // 查询视频拖拽设置                                            
    mediaDragConf, err := cli.GetMediaDrag(testDomain)     
    fmt.Printf("mediaDragConf:%+v\n", mediaDragConf)       
    fmt.Printf("err:%+v\n", err)                           

    mediaDragConfapi.MediaDragConf类型的对象,定义如下:

    type MediaDragConf struct {
    	Mp4 *MediaCfg 
    	Flv *MediaCfg 
    }

    可以设置Mp4或Flv类型视频流相关的拖拽,MediaCfg的详细说明如下:

    字段 类型 说明
    FileSuffix []string CDN系统支持MP4文件的伪流(pseudo-streaming)播放,通常这些文件拓展名为.mp4,.m4v,.m4a,因此这个fileSuffix值为文件拓展名集合,如: ["mp4", "m4v", "m4a"],type为mp4,fileSuffix默认值为["mp4"];type为flv,fileSuffix默认值为["flv"]
    StartArgName string start参数名称,默认为“start”,您可以自定义参数名称,但是要求不能和endArgName相同
    EndArgName string end参数名称,默认为“end”,您可以自定义参数名称,但是要求不能和startArgName相同
    DragMode string mp4类型按秒进行拖拽,flv类型按字节进行拖拽。type为flv可选择的模式为“byteAV”或”byte”;type为mp4只能是"second"模式

    设置/查询页面压缩 SetContentEncoding/GetContentEncoding

    开启页面压缩功能后,您可以对大多数静态文件进行压缩,有效减少用户传输内容大小,加速分发效果。目前页面压缩支持Brotli压缩和Gzip压缩两种方式。

    cli := client.GetDefaultClient()                                     
    testDomain := "test_go_sdk.baidu.com"                                
                                                                         
    // 设置页面压缩算法为gzip                                                     
    err := cli.SetContentEncoding(testDomain, true, "gzip")              
    fmt.Printf("err:%+v\n", err)                                         
                                                                         
    // 设置页面压缩算法为br                                                       
    err = cli.SetContentEncoding(testDomain, true, "br")                 
    fmt.Printf("err:%+v\n", err)                                         
                                                                         
    // 关闭页面压缩                                                            
    err = cli.SetContentEncoding(testDomain, false, "br")                
    fmt.Printf("err:%+v\n", err)                                         
                                                                         
    // 查询页面压缩算法,当关闭页面压缩时contentEncoding为空                                
    contentEncoding, err := cli.GetContentEncoding(testDomain)           
    fmt.Printf("contentEncoding:%+v\n", contentEncoding)                 

    设置HTTPS加速 SetDomainHttps

    配置HTTPS的一个加速域名,必须要上传证书,了解证书详情请参考证书管理

    cli := client.GetDefaultClient()                          
    testDomain := "test_go_sdk.baidu.com"                     
                                                              
    err := cli.SetDomainHttps(testDomain, &api.HTTPSConfig{   
    	Enabled:          false,                              
    	CertId:           "ssl-xxxxxx",                       
    	Http2Enabled:     true,                               
    	HttpRedirect:     true,                               
    	HttpRedirectCode: 301,                                
    })                                                        
    fmt.Printf("err:%+v\n", err)                              
                                                              
    err = cli.SetDomainHttps(testDomain, &api.HTTPSConfig{    
    	Enabled: false,                                       
    })                                                        
    fmt.Printf("err:%+v\n", err)                              

    api.HTTPSConfig的结构比较复杂,详细说明如下:

    字段 类型 说明
    Enabled bool 开启HTTPS加速,默认为false,当enabled=false,以下几列字段设置无效。
    CertId string 当enabled=true时此项为必选,为SSL证书服务返回的证书ID,当enabled=False此项无效。
    HttpRedirect bool 为true时将HTTP请求重定向到HTTPS(重定向状态码为httpRedirectCode所配置),默认为false,当enabled=false此项无效,不可与httpsRedirect同时为true。
    HttpRedirectCode int 重定向状态码,可选值301/302,默认302,当enabled=false此项无效,httpRedirect=false此项无效。
    HttpsRedirect bool 为true时将HTTPS请求重定向到HTTP重定向状态码为httpsRedirectCode所配置),默认为false,当enabled=false此项无效,不可与httpRedirect同时为true。
    HttpsRedirectCode int 重定向状态码,可选值301/302,默认302,当enabled=false此项无效,httpsRedirect=false此项无效。
    Http2Enabled bool 开启HTTP2特性,当enabled=false此项无效。必须要注意go的bool对象零值为false。
    HttpOrigin bool 当为true时以HTTP协议回源,默认为false,当enabled=false此项无效。
    SslVersion string 设置TLS版本,默认为支持从TLSv1.0到TLSv1.3的版本,也可以设置为以下四个之一,SSLV3,TLSV1,TLSV11,TLSV12,当enabled=false时此项无效,此项一般取默认值,无需设置。
    上一篇
    域名操作接口
    下一篇
    缓存管理接口