cdn刷新api_缓存刷新与查询

缓存刷新,是指将缓存过的客户资源在 CDN 节点内设置为过期状态;当用户再次发起访问时,节点回源站拉取所需资源,并重新缓存在节点上。具体做法是客户提交资源 url 到 CDN,由 CDN 来操作刷新。

访问域名

Host: fusion.qiniuapi.com

认证授权

Authorization:

access_token 详细描述请查阅这里。

接口地址

/v2/tune/refresh

刷新

请求语法

POST /v2/tune/refresh HTTP/1.1

Authorization:

Content-Type: application/json

{

"urls":[, , , ...],

"dirs":[, , , ...],

}

请求内容

参数

类型

说明

urlN

array

要刷新的单个url列表,总数不超过60条;单个url,即一个具体的url,例如:http://bar.foo.com/index.html

dirN

array

要刷新的目录url列表,总数不超过10条;目录dir,即表示一个目录级的url,例如:http://bar.foo.com/dir/,也支持在尾部使用通配符,例如:http://bar.foo.com/dir/*

注意事项

请输入资源 url 完整的绝对路径,由 http:// 或 https:// 开始。

资源 url 不支持通配符,例如:不支持 http://www.test.com/abc/\*.\*。

进行目录刷新时,资源 url 需要以 / 结尾,例如:http://www.test.com/abc/。

带参数的 url 刷新,根据其域名缓存配置是否忽略参数缓存决定刷新结果。如果配置了时间戳防盗链的资源 url 提交时刷新需要去掉 sign 和 t 参数。

当前目录刷新权限默认关闭,如需开通权限请通过工单联系我们审核开通。

请求数量限制,以下限制达到任意一个即触发限制:每秒钟刷新请求和预取请求的总量限制为 80。

每秒钟刷新请求和预取请求中的 url、dir 的总量限制为 240。

每个请求中 url 的条数限制为 60 条。

每个请求中 dir 的条数限制为 10 条。

响应状态码

HTTP状态码

含义

说明

200

success

成功

400031

invalid url

请求中存在无效的 url,请确保 url 格式正确

400032

invalid host

请求中存在无效的域名,请确保域名格式正确

400034

refresh url limit error

请求次数超出当日刷新限额

400036

invalid request id

无效的请求 id

400037

url has existed

url 正在刷新中

400038

refresh dir authority error

没有刷新目录的权限, 如果需要请联系技术支持

403024

single user QPS Rate limited

请求达到单用户QPS限制,请重试或联系我们

403022

server QPS Rate limited

请求达到全局QPS限制,请联系我们

500000

internal error

服务端内部错误,请联系技术支持

响应内容

HTTP/1.1 200 OK

Content-Type: application/json

{

"code": ,

"error": ,

"requestId": ,

"invalidUrls": [, , , ...],

"invalidDirs": [, , , ...],

"urlQuotaDay": ,

"urlSurplusDay": ,

"dirQuotaDay":

"dirSurplusDay":

}参数

类型

必要性

说明

code

int

必须

自定义错误码,整型,见自定义状态码

error

string

必须

自定义错误码描述,字符串

requestId

string

可选

刷新请求id,只有在任务被接受时才有值

invalidUrls

string array

可选

无效的url列表

invalidDirs

string array

可选

无效的dir列表

urlQuotaDay

int

可选

每日的刷新url限额

urlSurplusDay

int

可选

每日的当前剩余的刷新url限额

dirQuotaDay

int

可选

每日的刷新dir限额

dirSurplusDay

int

可选

每日的当前剩余的刷新dir限额

注意事项

在请求成功时 code 为 200,requestId、urlQuotaDay、urlSurplusDay、dirQuotaDay、dirSurplusDay才会有有效值,否则为空。

在请求失败时 code 为非 200,error 中包含描述信息。

刷新示例

下面是命令行示例:

请求命令示例:

第一步生成token:

echo "/v2/tune/refresh" |openssl dgst -binary -hmac "用户SK" -sha1 |base64 | tr + - | tr / _ 回车

生成的token

第二步发起请求:

curl -X POST -H "Authorization: QBox :" http://fusion.qiniuapi.com/v2/tune/refresh -d '{"urls":[""]}' -H 'Content-Type: application/json'

响应内容示例:

{"code":200,"error":"success","requestId":"575d1930f9537d3f2600003d","invalidUrls":null,"invalidDirs":null,"urlQuotaDay":100,"urlSurplusDay":99,"dirQuotaDay":10,"dirSurplusDay":10}

刷新查询

接口地址

/v2/tune/refresh/list

请求语法

POST http:///v2/tune/refresh/list

Authorization:

{

"requestId": ,

"isDir":

"urls":[, , , ...],

"state": ,

"pageNo": ,

"pageSize": ,

"startTime": ,

"endTime": ,

}

请求内容

参数

类型

必要性

说明

requestId

string

可选

指定要查询记录所在的刷新请求id

isDir

string

可选

指定是否查询目录,取值为 yes/no,默认不填则为两种类型记录都查询

urls

string

可选

要查询的url列表,每个url可以是文件url,也可以是目录url

state

string

可选

指定要查询记录的状态,取值processing/success/failure

pageNo

int

可选

要求返回的页号,默认为0

pageSize

int

可选

要求返回的页长度,默认为100

startTime

string

可选

指定查询的开始日期,格式2006-01-01

endTime

string

可选

指定查询的结束日期,格式2006-01-01

注意事项

输入参数可选部分全部为空时,服务端返回无效参数错误。

查询的时间范围:当天至当天的前6天(共7天)。

startTime和endTime任一缺失的情况下,查询默认返回近3天的操作记录。

响应状态码

HTTP状态码

含义

说明

200

success

成功

400000

invalid input

无效的输入参数

500000

internal error

服务端内部错误

500005

query data error

服务端查询数据错误

响应内容

HTTP/1.1 200 OK

Content-Type: application/json

{

"code": ,

"error": ,

"total": ,

"pageNo": ,

"pageSize": ,

"currentSize": ,

"items": [{

"uid": ,

"requestId": ,

"url": ,

"state": ,

"stateDetail": ,

"createAt": ,

"beginAt": ,

"endAt": ,

}, ...],

}参数

类型

必要性

说明

code

int

必须

自定义错误码,整型,见自定义状态码

error

string

必须

自定义错误码描述,字符串

total

int

可选

当前条件下查询的记录总数

pageNo

int

可选

要查询的页号

pageSize

int

可选

要返回的页长度

currentSize

int

可选

当前实际返回的页长度

uid

string

可选

用户id

requestId

string

可选

记录所在的刷新请求id

url

string

可选

url

state

string

可选

刷新状态,取值为success/processing/failure

stateDetail

string

可选

刷新状态描述信息

createAt

string

可选

当前记录创建时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:05:05

beginAt

string

可选

当前记录开始时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:05:25。

endAt

string

可选

当前记录结束时间,格式为xxxx-xx-xx xx:xx:xx,例如2015-11-01 16:09:05

刷新查询示例

下面是命令行示例:

请求命令示例:

第一步生成token:

echo "/v2/tune/refresh/list" |openssl dgst -binary -hmac "用户SK" -sha1 |base64 | tr + - | tr / _ 回车

生成的token

第二步发起请求:

curl -X POST -H "Authorization: QBox :" http://fusion.qiniuapi.com/v2/tune/refresh/list -d '{"urls":["","pageNo":,"pageSize":]}' -H 'Content-Type: application/json'

响应内容示例:

{"code":200,"error":"success","total":1,"pageNo":0,"pageSize":10,"currentSize":1,"items":[{"uid":1100000009,"requestId":"57edce1a23232391821e303b","url":"http://www.test.com/test01","state":"success","stateDetail":"","createAt":"2015-09-30 10:29:46","beginAt":"2015-09-30 10:29:48","endAt":"2015-09-30 10:30:08"}]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Perl编写的调用华为云创建CDN预热和刷新CDN缓存预热的API接口的示例代码: ```perl #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use JSON; # Replace with your own values my $ak = 'YOUR_ACCESS_KEY'; my $sk = 'YOUR_SECRET_KEY'; my $project_id = 'YOUR_PROJECT_ID'; my $domain_name = 'YOUR_DOMAIN_NAME'; # Create a UserAgent object my $ua = LWP::UserAgent->new; # Set the API endpoint URL my $url = "https://cdn.myhuaweicloud.com/v1.0/$project_id/refresh-tasks"; # Set the request headers my $headers = [ 'Content-Type' => 'application/json', 'X-Auth-Token' => '', ]; # Set the request body my $body = { 'refresh_type' => 'flush', 'domains' => [ $domain_name ] }; # Encode the request body as JSON my $json_body = encode_json($body); # Sign the request with the AK/SK my $timestamp = time; my $auth_string = "CDN $ak:$timestamp:" . hmac_sha1_hex($timestamp, $sk); $headers->{'X-Auth-Token'} = $auth_string; # Send the API request my $response = $ua->post( $url, headers => $headers, content => $json_body ); # Check for errors if ($response->is_error) { die "API request failed: " . $response->status_line; } # Decode the response body as JSON my $json_response = decode_json($response->content); # Print the task ID my $task_id = $json_response->{'task_id'}; print "Task ID: $task_id\n"; ``` 这个示例代码会向华为云发送一个CDN缓存预热的请求,使用了LWP::UserAgent模块发送HTTP请求使用JSON模块将请求体和响应体编码为和解码为JSON格式。在实际使用中,需要将示例代码中的YOUR_ACCESS_KEY、YOUR_SECRET_KEY、YOUR_PROJECT_ID和YOUR_DOMAIN_NAME替换为自己的实际值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值