使用Cloudflare API清除所有缓存

博客一直在用着 Cloudflare CDN,因为不仅免费而且强大,功能基本上都有,对于个人来说基本上足够了。

因为用的是 hexo 构建的博客,新文章推送 Github 自动构建之后打开网站首页发现并没有更新,但是在归档里有,这时就会发现是缓存的问题。清除缓存可以通过 Cloudflare 的控制面板进行手动清除,清除后再访问首页就会出现新推送的文章。

但每次更新都要登录 Cloudflare 进行手动操作清除缓存,有点麻烦。正好,使用 Cloudflare 的 API 就能解决这个问题。

进入 Cloudflare API 的文档,找到了清除缓存的 API,https://developers.cloudflare.com/api/operations/zone-purge

purge cached content

右边有了一个示例,往下看,发现了所需要的参数

request

其中 api_email 就是账号的注册邮箱,api_key 就是账号的 Global API Key,通过 https://dash.cloudflare.com/profile/api-tokens 查看

global api key

其中 url 中的 identifier 则是该网站域名概述页面的区域 ID

zone id

至此,所需的内容都已经可知,直接构造请求即可。

1
2
3
4
5
curl -X POST "https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/purge_cache" \
-H "X-Auth-Email: {EMAIL}" \
-H "X-Auth-Key: {GLOBAL_API_KEY}" \
-H "Content-Type: application/json" \
--data '{"purge_everything":true}'

根据自己的实际情况进行补全,还可以根据自己熟悉的语言进行改编,比如 Go 或 Python。