网宿云 cdn 预热脚本

将源站的内容主动预取到 CDN 节点,用户首次访问可直接命中缓存,即提升首次访问速度,又能有效缓解源站压力。

  • 数据格式:请求和响应都支持 json/xml,xml 的参数与 json 的参数基本一致,json 的参数是驼峰分隔,xml 的参数是“-”分隔,详见示例。
  • 限制说明:每个账号的预取并发是 10,调高并发会增加回源的压力,请联系技术支持人员评估。

请求参数

参数 类型 是否必填 说明 内部备注
urls Array 要预取到 CDN 节点的 url 集合,url 格式说明:
1)URL 必须以’http://‘ 或 ‘https://‘ 开头,输入示例:http://www.a.com/image/test.png。
2)每个 url 最大长度 2000 字符。
3)每个 url 所在的域名必须是在我司加速的域名且有预取权限。
4)url 中如果包含中文字符,则提交的 url 需要是中文转义后的url,采用 utf-8 方式转义。
5)每日不超过 20000 条,不超过 200G 文件大小(账号粒度可调,联系技术支持人员调整)。
6)每次接口调用 url 的总数不超过 400 条。
isRange Int 是否需要预取 range 段。
1)默认为 0,表示预取完整的文件;
2)1 表示预取文件 0~512KB 的 range 段(账号粒度可调,联系技术支持人员调整)。
aliasDomain String 账号开启 ts 解析
有值的话,m3u8 和生成的 ts 文件需要同时生成一份带别名的url
parentDir String 一级目录,该参数和 aliasDomain 一起使用
如果有值的话,是做为别名的一级目录

响应参数

参数 类型 说明
x-cnc-request-id String 本次请求的唯一标识,当接口调用异常时,可将 requestID 提供给网宿技术支持,便于排查接口的访问日志。
Code Int 表示任务创建结果的状态码,1 表示任务提交成功,0 表示任务提交失败
Message String 表示任务提交后,系统的响应消息
itemId String 调用一次接口并提交任务成功后,将返回一个 itemId,是当次提交任务的唯一标识,通过 itemId 可批量查询任务的状态(成功/失败)。

请求示例

#!/bin/bash
username="username"
apiKey="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://open.chinanetcenter.com/ccm/fetch/ItemIdReceiver" -X "POST" -u "$username:$password" \
-H "Date:$date" -H "Content-Type: application/json" -d '{
"urls": [
"http://www.testb.com/test/test1.txt",
"http://www.testb.com/test/test2.txt"
],
"isRange":0
}'

apiKey 生成链接

正确的响应示例:

HTTP/1.1 200 OK
Date: Fri, 26 Oct 2012 06:33:26 GMT
Content-Type: application/json;charset=UTF-8 x-cnc-request-id:{id string auto generated by cloud server}
{
"Code": 1,
"Message": "success",
"itemId": "a2cfcc6fe79c4a8abcab806578f9bada"
}

参考链接

官网说明
网宿cdn预热完整文档