创建刷新任务

更新时间:2022-10-17 09:54:39

适用产品

CDN Pro

接口描述

创建一个刷新任务来强制刷新存储在CDN Pro缓存服务器中的内容。当您更新了源站的内容,并希望访客立即看到更新后的内容,您可以创建一个刷新任务立即刷新内容。

推荐使用 Open API在线调试

Open API在线调试功能提供可视化界面在线调试API、支持生成代码示例、快速检索查看API文档等能力。前往调试

请求参数

Body 参数

参数名称描述
nameString
刷新请求的说明。
fileUrlsList
要刷新的文件的URL。URL不能包含星号字符'*'。如果URL中的目录或文件名包含'%'等特殊符号,需要先进行URL编码。每个URL长度不能超过2048个字符。
fileHeadersList
如果文件的缓存键与请求头相关,则可以指定请求头和值来刷新相应的缓存文件。此处指定的请求头和值将应用于fileUrls中的所有条目。
nameString
HTTP 头部名称
valueString
HTTP 头部的值
dirUrlsList
<= 20 条目 要刷新的目录的URL。URL必须以http:// 或者 https://开头,每条URL最多只能包含2048个字符。 在URL中使用'*'字符可以匹配多个文件或目录。如果一条URL中带有多组'*',则只有最后一个'*'或'**'会被当成通配符来进行匹配,其它的'*'只会被当成普通字符。
示例描述
http://test.domain2.com/mydir刷新单个目录的所有变体,但不包括其子目录或文件。当您自定义了缓存键时,则可能存在变体。
http://test.domain2.com/mydir/**刷新缓存键以http://test.domain2.com/mydir/开头的所有文件和子目录。
http://test.domain2.com/mydir/*刷新目录中的所有文件,但不包括子目录。
http://test.domain2.com/mydir/*.jpg刷新所有以.jpg文件扩展名结尾的缓存,但不会刷新http://test.domain2.com/mydir/ 的子目录。
http://test.domain2.com/mydir/a*刷新以字母'a'开头的所有文件,但不包括子目录。
http://test.domain2.com/mydir/a**刷新以字母'a'开头的所有文件和子目录。
http://test.domain2.com/mydir/a.jpg刷新'a.jpg'文件的所有变体。当您自定义了缓存键时,则可能存在变体。
http://test.domain2.com/my**jpg刷新缓存键以 http://test.domain2.com/my 开头并以后缀 jpg 结尾的所有条目。'**'可以匹配路径中的任何内容,包括其他子目录。例如,http://test.domain2.com/mydirectory/picture.jpg 将被刷新。
如果URL中的目录或文件名包含百分号'%'等特殊符号时,请确保先进行URL编码。
regexPatternsList
<= 2 条目 用于匹配缓存键的正则表达式。 每个表达式必须以 {协议}://{域名}/ 格式开头。其中,{协议} 可以是 http, https,或any(表示不限协议)。 示例: https://test.domain.com/my.*\.(jpg|png)\?q=
出于性能考虑,使用正则表达式有以下限制: 在域名后面的正则表达式最多只能包含126个字符。 最多只能包含两个限定符('*'、'+'或',}')。 限定符的上限不能超过59,例如{1,59}
actionString
取值范围: delete, invalidate 默认值: invalidate 指定刷新类型,包括完全删除(delete)和标记为无效(invalidate)。
*targetString
取值范围: staging, production 指定刷新请求应用于演练环境还是生产环境。
webhookString
刷新任务完成时要调用的webhook的ID。

返回参数

响应头

参数名称描述
LocationString
通过Location响应头返回新建的刷新任务的URL。URL中包含刷新任务的ID,可使用该ID调用'查询刷新任务详情'接口来查看刷新任务详情。URL示例:Location: http://open.chinanetcenter.com/cdn/purges/5dca2205f9e9cc0001df7b33

错误码

错误代码(code)描述(message)HTTP状态码语义
InvalidPurgeUrlThe host 'test.domain.info' has not been deployed in the 'production' environment.400指定的域名尚未部署至指定的环境。
InvalidPurgeUrlThe purge URL 'http://domain.info/newfile[1]{tes`|t^}p.png' is invalid. Special letters need to be encoded.400URL中带有特殊字符的,必须先进行URL编码。
InvalidPurgeUrlThe purge URL 'http://domain.info/i/image/gallery/123%abc.jpg' is invalid. Special letters need to be encoded.400URL中带有特殊字符的,必须先进行URL编码。

示例

400
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://open.chinanetcenter.com/cdn/purges" \
-X "POST" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-d '{
  "fileUrls": [
    "http://domain.info/i/image/gallery/123.jpg",
    "http://test.domain2.com/2.txt?q1=1&q2=3"
  ],
  "fileHeaders": [
    {
      "name": "customheader1",
      "value": "test1"
    },
    {
      "name": "customheader2",
      "value": "test2"
    }
  ],
  "action": "invalidate",
  "target": "production"
}'
返回示例
复制代码 复制成功
{
    "code": "InvalidPurgeUrl",
    "message": "The host 'test.domain.info' has not been deployed in the 'production' environment."
}
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!