为指定的域名申请加速服务
| 参数名称 | 描述 |
|---|---|
*versionString | 版本号,当前版本号1.0.0 |
*domain-nameString | 需要接入CDN的域名。支持泛域名,以符号“.”开头,如:.example.com,
泛域名也包含多级 a.b.example.com。 如果example.com已备案,那么域名xx.example.com则不需要备案。 |
referenced-domain-nameString | 指定参考域名。当使用参考域名来新增域名是,新域名将复用参考域名的配置 |
config-form-idString | 配置单模板,特定的使用场景下,如果希望新增的加速域名参照某些指定配置时,可以指定配置单模板,具体使用请咨询对应的客户负责人。 |
accelerate-no-chinaString | 是否纯海外加速,入参范围:true、false |
*contract-idString | 合同号,如40015677 |
*item-idString | 产品号,如10 |
cname-labelString | 共用一级别名,客户存在较多一级域名共用的需求,因此在接口中引入cname-label标识,即拥有相同cname-label的一组域名,共用一级cname。当加速域名的加速区域、加速类型、资源链是一致的时候,建议使用共用一级别名,相同的业务使用相同一级别名cname。 注意: 1、拥有相同cname-label的域名共用一级cname,且有完全一致的dns覆盖 2、共用一级的约束:配置一致、加速类型一致、证书id一致(如果有证书)、加速区域一致、平台套餐一致 3、多个http域名可共用一级,多个sni https域名可共用一级,多个共享证书域名可共用一级 4、单个域名使用cname-label时,域名可取消加速;多个域名共用一级时,不允许取消加速这些域名 5、支持通过修改cname-label达到修改cname的目的 |
commentString | 备注信息,最大限制1000个字符 |
header-of-clientipString | 传递客户端ip的响应头部,可选值为Cdn-Src-Ip、X-Forwarded-For、ori_X-Forwarded-For
1) Cdn-Src-Ip: 回源头部名称为Cdn-Src-Ip,获取与节点进行建联的IP作为客户端IP传递回源。
2) X-Forwarded-For: 回源头部名称为X-Forwarded-For,携带的客户端IP值是Cdn-Src-Ip获取到的建联IP。
3) ori_X-Forwarded-For:客户端请求CDN节点时会自带X-Forwarded-For,则CDN透传此头部和值回源。 |
*origin-configObject | 回源策略设置,用于设置加速域名的源站信息和回源策略 |
origin-ipsString | 回源地址,可以是IP或域名。 1. IP以分号分隔,支持多个。 2. 域名只能输入一个。IP与域名不能同时输入。 3.限制最大不能超过500个字符长度。 |
default-origin-host-headerString | 回源HOST,用于更改回源HTTP请求头中的HOST字段。支持格式为: 域名或ip。
注意:必须符合ip/域名格式规范。如果是域名,则域名每段(点号分隔)长度小于等于62,域名总长度小于等于128。 |
origin-portString | 回源请求端口,不能为0 |
live-configObject | 直播域名配置,用于设置直播加速域名的推拉流(使用需申请)
注意:该节点下的相关参数配置,除开通API调用权限外,还需要联系专属客服申请开通对应的API客户模板 |
stream-typeString | 直播推拉流类型,可选值为pull和push,pull表示拉流; push表示推流。 |
origin-push-hostString | 配套推流域名,用于设置直播拉流域名对应的推流域名,当stream-type为pull时,源站IP和配套推流域名至少一个不为空;当stream-type为push时,无需传入。 |
origin-ipsString | 源站IP,当stream-type为pull时,源站IP和配套推流域名至少一个不为空。
1、如果是推拉流配套,则填写127.0.0.1,不传系统也默认为127.0.0.1
2、如果是直接回源拉流,则填写回源拉流的源站IP |
publish-pointsList | 设置直播推拉流域名的发布点
注意:
1、拉流和对应的推流域名,必须配置相同的发布点;
2、不想修改发布点时,不要传入该节点及以下入参;
3、发布点采用覆盖式更新,每次修改时,需要提交全部发布点,不能仅提交需要修改的部分。 |
uriString | 发布点,支持多个,多个值用||隔开,不传系统默认生成一条发布点uri为“/” |
sslObject | ssl证书设置,用于设置加速域名的ssl证书配置。上传证书请使用接口:【新增证书V2】;若要修改证书,请使用接口:【修改证书V2】 |
use-sslString | 使用证书,可选值为true和false,true表示使用证书,false表示不使用证书 |
use-for-sniString | 使用sni证书,可选值为true和false,true表示使用sni证书,false表示使用合用证书(暂不支持) |
ssl-certificate-idInteger | 证书ID,新增证书成功后,系统返回的证书ID,use-ssl为true时,才能传ssl-certificate-id。 |
auto-add-certificateString | 自动创建证书,1-是 |
control-group-nameString | 服务组名称,用来指定域名添加后在哪个服务组中 |
http-code-cache-rulesList | 状态码缓存规则配置,父标签
1.需要设置状态码缓存规则时,此项必填 |
http-codesList | 配置http状态码,父标签 |
cache-ttlString | 配置指定的状态码的缓存时间,单位s,0表示不缓存 |
websocket-switchObject | 开启或关闭websocket功能,父标签,为 |
is-open-websocketString | 是否开启websocket功能,允许值为true和false,默认为否 |
rewrite-rule-settingsList | 一级服务改写替换—二级服务 内部重定向
注意:
1. 定义一组内部重定向内容,,如果有使用内部重定向内容,此项必填
2. 如果有开启其他高级配置(如防盗链配置),有些配置可能会有配置冲突,建议先与技术支持人员确认 |
after-valueString | 配置项:新url
表示改写后的协议方式,如:http://$1
如果请求重定向带状态码则参考入参:301:https://$1
注:如果url含域名,则域名需要是本身。 |
file-typeString | 匹配条件:文件类型,多个请以英文;分隔,可选值:gif png bmp jpeg jpg html htm shtml mp3 wma flv mp4 wmv zip exe rar css txt ico js swf m3u8 xml f4m bootstarp ts |
custom-file-typeString | 匹配条件:自定义文件类型,多个请以英文;分隔。 |
operators-areaString | 用户区域 |
ignore-letter-caseString | 忽略大小写,可选值为true或false,true表示忽略大小写;false表示不忽略大小写;
新增配置项时,不传默认为 true
如果客户传了空值:如 |
exceptional-operators-areaString | 例外的用户区域 |
exceptional-requestString | 例外的请求方式 |
path-patternString | url匹配模式,支持正则,客户入参参考:.*
对于匹配到的URL进行内容重定向 |
custom-patternString | 匹配条件:指定常用类型,可选值为all或homepage 1. all:全部文件 2. homepage:首页 |
request-wayString | 请求方式 |
priorityString | 表示客户多组重定向内容的优先执行顺序。数字越大,优先级越高。
新增配置项时,不传默认为 10 |
uaString | UA |
directoryString | 目录 |
exception-request-headerString | 匹配条件:例外的请求头 |
exceptional-uaString | 例外的UA |
request-headerString | 匹配条件:请求头 |
except-path-patternString | 例外的url匹配模式,某些URL除外:如abc.jpg,不做内容重定向
客户入参参考:^https?://[^/]+/.*\.m3u8 |
before-valueString | 配置项:旧url
表示改写前的协议方式(即需要改写的对象),如:^https://([^/]+/.*)
如果是回源协议改写,则表示客户请求的原始url,配套的参数after-value,表示客户请求需要转换的回源请求。 |
http2-settingObject | http2.0设置,用于设置http2.0的开启或关闭,父标签 |
enable-http2String | 开启http2.0,可选值为true和false,为空时默认为false。true表示开启http2.0;false表示关闭http2.0 |
back-to-origin-protocolString | 回源协议,可选值为
http1.1:使用HTTP1.1协议版本回源,不填时默认该协议
follow-request:跟随客户端请求协议
http2.0:使用HTTP2.0协议版本回源(点播下载直播产品不支持H2回源) |
back-to-origin-rewrite-ruleObject | 修改回源协议和端口;若要按原始请求回源,则可清空该对象,示例"backToOriginRewriteRule":{} |
protocolString | 改写后的回源协议,可选值:http、https |
portString | 改写后的回源端口,若protocol为http时,默认为80,若protocol为https时,默认为443 |
header-modify-rulesList | http头设置
注意:
1. 表示需要设置http头,此项必填 |
path-patternString | url匹配模式,支持正则,如果是全部匹配,入参可以配置为:.* |
except-path-patternString | 例外的url匹配模式,支持正则。 入参参考: |
custom-patternString | 匹配条件:指定常用类型,可选值为all或homepage 1. all:全部文件 2. homepage:首页 |
file-typeString | 匹配条件:文件类型,多个请以英文;分隔,可选值:gif png bmp jpeg jpg html htm shtml mp3 wma flv mp4 wmv zip exe rar css txt ico js swf m3u8 xml f4m bootstarp ts |
custom-file-typeString | 匹配条件:自定义文件类型,多个请以英文分号分隔。 |
directoryString | 目录 |
specify-urlString | 匹配条件:指定URL
入参不支持含http(s):// 开头的URI格式 |
request-methodString | 匹配的请求方式,可选值为:GET、POST、PUT、HEAD、DELETE、OPTIONS,多个请以英文分号分隔 |
header-directionString | http头的控制方向,可选值为cache2visitor/cache2origin/visitor2cache/origin2cache,单选。
cache2origin是指回源方向---对应配置项回源请求;
cache2visitor是指回客户端方向—对应配置项回客户端应答;
visitor2cache是指接收客户端请求
origin2cache是指接收源应答
配置接收源应答方向,添加非CACHE control头,无法传递给客户端 |
actionString | http头的控制类型,支持http头部的增删改,可选值为add|set|delete,单选。对应header-name、header-value参数
1. add:表示新增一个头部,头部名称为header-name,头部值为header-value
2. set:表示修改指定头部header-name的值为header-value
3. delete:表示删除头部,header-name可同时配置多个
注意:优先级delete>set>add。当源站有对应响应头,则按源站响应的头部响应给客户端,此处新增的无效。 |
allow-regexpString | http头正则匹配,可选值:true/false。
true:表示对header-name的值按正则匹配方式处理
false:表示对header-name的值按实际入参处理,不做正则匹配。
不传默认是false |
header-nameString | http头名称,新增或修改http头,只允许输入一个;删除http头允许输入多个,以分号“;”隔开。
1.当action为add:表示新增这个header-name头部
2.当action为set:修改这个header-name头部的值
3.当action为delete:删除这个header-name头部
注意:对特殊http头的操作是受限的,允许操作的http头及操作类型请参看【概览】-【附件2: header操作】 |
header-valueString | http头域对应的值,例如:mytest.example.com
注意:
1. 当action为add或set时,该入参必须传值
2. 当action为delete时,该入参不用传
支持通过关键字获取指定变量值,如客户端ip,包含如下:
关键字:含义
#timestamp:当前时间,时间戳如1559124945
#request-host:请求头中的HOST
#request-url:请求url,包含协议域名等的全路径,如http://aaa.aa.com/a.html
#request-uri:请求uri,相对路径格式,如/index.html
#origin-ip:回源IP
#cache-ip:边缘节点IP
#server-ip:对外服务IP
#client-ip:客户端IP,即访客IP
#response-header{xxx}:获取响应头中的值,如#response-header{etag},获取response-header中的etag值
#header{xxx}:获取请求的http header中的值,如#header{User-Agent},是获取header中的User-Agent值
#cookie{xxx}:获取cookie中的值,如#cookie{account},是获取cookie中设置的account的值 |
header-value-oldString | http头域对应的原始值 |
request-headerString | 2匹配请求头,头部值支持正则,头和头部值用空格隔开,如:Range bytes=[0-9]{9,} |
priorityString | 表示客户多组配置的优先执行顺序。数字越大,优先级越高。 不传参默认为10,不可清空 |
except-file-typeString | 例外的文件类型 |
except-directoryString | 例外的目录 |
except-request-methodString | 例外的请求方式 |
except-request-headerString | 例外的请求头 |
cache-behaviorsList | 缓存时间配置
注意:
1. 需要取消缓存时间配置设置时,可以传入空节点 |
path-patternString | url匹配模式,支持正则,如果是全部匹配,入参可以配置为:* |
except-path-patternString | 例外的url匹配模式,某些URL除外:如abc.jpg,不做内容重定向
客户入参参考:^https?://[^/]+/.*\.m3u8 |
custom-patternString | 指定常用类型:选择缓存域名的是全部文件还是首页。入参参考值:
all:全部文件
homepage:首页 |
file-typeString | 文件类型:指定需要缓存的文件类型。
文件类型包括:gif png bmp jpeg jpg html htm shtml mp3 wma flv mp4 wmv zip exe rar css txt ico js swf
如果需要全部类型,则直接传all。多个以分号隔开,all和具体文件类型不能同时配置。 |
custom-file-typeString | 自定义文件类型:在指定文件类型外根据自身需求,填写适当的可识别文件类型。可以搭配file-type使用。如果file-type也有配置,实际生效的文件类型是两个入参的总和 |
specify-url-patternString | 指定URL缓存:根据需求指定url进行缓存
入参不支持含http(s):// 开头的URI格式 |
directoryString | 目录:指定目录缓存。
输入合法的目录格式。多个以英文分号隔开 |
cache-ttlString | 缓存时间:设置缓存对象对应的时间。入参格式:整数,不缓存设置为0。缓存时间理论上没有上限限制,这个时间根据客户自身的需求设定,如果客户觉得其中一些文件,变更不频繁,那么就设置长一点。例如,文本类的js,css,html等可以设置得短一些,图片、视频音频类的可以设置的长一点(因为缓存时间会因文件热度算法,旧文件会被新文件替换掉,最长建议不要超过一个月)如果要修改缓存规则,此项必填 |
ignore-cache-controlString | 忽略源站不缓存头。可选值为true和false,用于忽略请求头中cache-control的两种配置(private,no-cache)和客户端设置的Authorization。
ture表示会忽略掉源站对于这三者的设定。使得资源能够以cache-control: public的方式缓存在服务节点上,然后我们的节点才能缓存这种类型的资源,提供加速服务。
false表示当源站对某种资源设定了cache-control: private,cache-control:no-cache或指定根据authorization进行缓存时,我们的服务节点将不会对此类文件进行缓存。 |
is-respect-serverString | 尊重服务端:加速是否要按源站缓存时间优先。
可选值:true和false
true:表示重服务端时间优先
false:CDN配置的缓存时间优先 |
ignore-letter-caseString | 忽略大小写,可选值为true或false,true表示忽略大小写;false表示不忽略大小写;
新增配置项时,不传默认为 true |
reload-manageString | reload处理规则,可选项:ignore或者if-modified-since
if-modified-since:表示要转成if-modified-since
ignore:表示忽略客户端刷新 |
priorityString | 表示客户多组重定向内容的优先执行顺序。数字越大,优先级越高。
新增配置项时,不传默认为 10
如果传了值,不能为空 |
ignore-authentication-headerString | 忽略鉴权头部Authentication,可选值为true和false。默认为不忽略。 |
uaString | UA |
exception-uaString | 例外的ua |
uri-match-patternString | 指定URI匹配模式,可选值:exact:精准匹配、parameter-ignoring:忽略参数匹配 |
cache-unitString | 缓存时间单位:设置缓存对象对应的时间单位:比如s、m、h、d。不输入单位默认是秒 |
origin-rules-rewritesList | 回源路径改写配置
1.需要设置回源路径改写配置时,此项必填 |
path-patternString | url匹配模式,支持正则,如果是全部匹配,入参可以配置为:.* |
path-pattern-httpString | url匹配模式的协议,该配置项与path-pattern搭配使用;入参支持:默认为空,为空则默认为需要同时支持url匹配模式路径前支持http和https协议;
http:url匹配模式路径前加上http协议
https:url 匹配模式路径前加上HTTPS协议
ignore:url匹配模式路径前不加协议 |
except-path-patternString | 例外的url匹配模式,格式同pathPattern |
except-path-pattern-httpString | 例外的url匹配模式的协议,该配置项与except-path-pattern搭配使用;入参支持:默认为空,为空则默认为需要同时支持url匹配模式路径前支持http和https协议;
http:url匹配模式路径前加上http协议
https:url 匹配模式路径前加上HTTPS协议
ignore:url匹配模式路径前不加协议 |
ignore-letter-caseString | 是否忽略大小写:允许值为true和false,默认为忽略 |
origin-infoString | 回源信息,可以输入ip或者域名
即客户源站IP或域名 |
priorityString | 表示客户多组重定向内容的优先执行顺序。数字越大,优先级越高。
新增配置项时,不传默认为 10
如果传了值,不能为空 |
origin-hostString | 回源host,支持入参域名;
示例:域名A的回源host配置了域名B。当A域名请求的回源的时候,请求的url上用B域名代替A域名 |
before-rewrited-uriString | 改写前的uri. 即用户访问的原始请求uri 。支持正则配置 |
after-rewrited-uriString | 改写后的uri,即将 before-rewrited-uri配置的请求uri,用改写后的uri回源。实现回源路径改写。支持正则配置 |
change-serversList | 【接入域名跳转】
注意:
1、表示需要设置【接入域名跳转】,此项必填 |
target-serverString | 如果是泛域名,需要填写为泛域名,例如:*.56.com |
resource-group-idString | 资源ID |
| 参数名称 | 描述 |
|---|---|
httpStatusInteger | httpstatus=202; 表示成功调用新增域名接口,可使用header中的x-cnc-request-id查看当前新增域名的部署情况 |
x-cnc-request-idString | 唯一标示的id,用于查询每次请求的任务 (适用全部接口) |
locationString | 响应信用于访问该域名信息的URL,其中domain-id为我司云平台为该域名生成的唯一标示,其值为字符串。 |
cnameString | 由我司自动生成的服务域名名称,例如:xxxx.cdn30.com |
codeString | 请求结果状态码 |
messageString | 响应信息,成功时为success |
| 错误代码(code) | 描述(message) | HTTP状态码 | 语义 |
|---|---|---|---|
| MalformedXML | The XML provided is incorrect or incompatible with the rules | 400 | 提供的xml不正确或者不符合规则 |
| InternalError | Internal errors such as server exception, data acquisition failure, etc. | 500 | 服务器异常,数据获取失败等内部错误 |
| DomainAlreadyExists | The added domain name has already existed. | 409 | 添加的域名已经存在。 |
| ConfigError | Invalid domain name | 400 | 域名无效 |
| ICPNotFound | The domain name you provided does not have a record number. | 400 | 您提供的域名没有备案号 |
| InvalidOrigin | No source ip or source domain name is provided. | 400 | 没有提供回源ip或回源域名。 |
| InvalidOrigin | The returned source domain and the accelerated domain name cannot be the same | 400 | 回源域名和加速域名不能相同 |
| InvalidOrigin | The source ip/domain name is invalid. | 400 | 回源ip/域名不合法。 |
| InvalidOrigin | Returned source ip is repeated | 400 | 回源ip重复 |
| CustomizedCnameError | Customer sharing a level 1 error | 409 | 客户共用一级错误 |
| ConfigFormNotExists | Configuration does not exist | 400 | 入参服务区域错误 |
| CnameError | Shared first level error | 409 | 共用一级错误 |
| CnameError | The common level belongs to multiple configuration order templates. | 400 | 共用一级属于多个配置单模板 |
| InvalidOrigin | Domain name attribute value is incorrect | 400 | 域名属性值错误 |
| InvalidOrigin | No certificate id is passed when using the certificate | 400 | 使用证书时没有传入证书id |
| ConfigError | No corresponding service order | 400 | 没有对应的服务单 |
| ConfigError | The external acceleration type of the parameter is empty | 400 | 参数的外部加速类型为空 |
| ConfigError | Cannot find the configuration list of the domain name | 400 | 找不到域名的配置单 |
| ConfigError | Cannot find the service form for the domain name | 400 | 找不到域名的服务单 |
| ConfigError | The specified configuration does not match the specified shared primary domain name. | 409 | 指定配置与指定共用一级域名不匹配 |
| ConfigError | The specified acceleration type does not match the specified shared first-level domain name. | 400 | 指定加速类型与指定共用一级域名不匹配 |
| NoSuchConfigTemplet | The configuration template does not exist. | 404 | 入参服务区域与指定共用一级域名的服务区域不匹配 |
| NO_AVAILABLE_CONFIG | Cannot find a suitable ticket based on the type of acceleration | 400 | 配置单模板不存在 |
| PARSE_PARAM_ERROR | Input parameter parsing error | 400 | 根据加速类型找不到合适的服务单 |
| NULL_DOMAIN_NAME | Domain name is empty | 400 | 入参解析错误 |
| STAGING_SUIT_ERROR | Package is not found | 400 | 证书id不能为空 |
| SUIT_HAS_NOT_CONFIG_CERTIFICATE_SERVICE | The service order is of the https type, but the related service does not have the relevant secondary service for configuring the certificate. | 400 | 该证书不支持Cipher加密套件的自助配置 |
| ERROR_CONFIG_PARAM | Configuring single configuration item error | 400 | 配置单配置项错误 |
| MAIN_DOMAIN_NAME_EXIST | Primary domain already exists | 400 | 主域名已存在 |
| InvalidControlGroupName | Invalid Control Group Name | 400 | 无效的服务组名称 |
#!/bin/bash
username="example_username"
apiKey='example_apiKey'
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://api.cdnetworks.com/cdnw/api/domain" \
-X "POST" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-H "Content-Type:application/json" \
-d '{
"version": "1.0.0",
"domain-name": "www.example.com",
"contract-id": "40012086",
"item-id": "10",
"control-group-name": "ShareResourceFor_example",
"origin-config":{
"origin-ips":"1.1.1.0"
},
"referenced-domain-name":"aaa.linlytest.com",
"ssl":{
"use-ssl":"true",
"ssl-certificate-id":"certificate ID"
}
}'HTTP/1.1 202 Accepted
Date: Fri, 17 May 2017 06:33:26 GMT
Content-Type: application/xml;charset=utf-8
x-cnc-request-id:c54cbbb4-19fe-407a-930c-3988b62ed2fd
Location:https://api.cdnetworks.com/api/domain/1234567
cname: 7nt6mrh7sdkslj.cdn30.com
{"message":"success"}