将边缘结点的缓存刷新加入到博客发布的工作流(Hexo、WordPress)
使用了 CDN 或其他边缘加速产品加速源站的小伙伴可能会遇到一个问题,那就是每次发布博客到服务器后,都需要手动在控制台进行节点的缓存刷新,很是麻烦。这里我介绍几种刷新边缘结点缓存的方法,对于 Hexo 博客,将着重介绍通过脚本的思路实现一键发布的具体流程。
腾讯云对象存储的 CDN 刷新
首先介绍官方方案。点击存储桶后可以找到 CDN 缓存刷新函数,这是一项收费服务。有兴趣的小伙伴可以试一试。

Hexo 自写 JavaScript 脚本并利用钩子实现
思路(package.json 的编写)
在接触 Hexo 博客建站的时候,你一定会知道 Hexo 三连:
1 | hexo clean && hexo g && hexo d |
命令含义参考:指令 | Hexo
上面的命令可以写进 [blog_root]/package.json 的 scripts 中,如:
1 | "scripts": { |
这样每次部署我们只需要运行 npm run publish 即可完成连击。
在完成博客部署连击后,我们可以再执行一个脚本刷新腾讯云 CDN 缓存。我打算写一个 JavaScript 脚本 auto_flush_cdn.js 用 Node 运行(搭有 Hexo 的总会装有 Node.js 的吧)。
这样我们的部署脚本就会是这样:
1 | "scripts": { |
或者利用钩子:
1 | "scripts": { |
触发流程解决好后,下一个任务就是 auto_flush_cdn.js 的编写。
使用腾讯云 SDK 进行开发
登录腾讯云后,打开云产品 ->云 API:

我们要使用腾讯云 SDK,需要先安装依赖:

这里我就安装在博客目录了:博客下新建终端运行命令 npm install tencentcloud-sdk-nodejs-cdn --save
「找不到模块」的解决方案
实践中遇到找不到模块的问题,安装好依赖后记得重启终端、VSCode 甚至电脑。如果不行请另外搜索解决方案。
然后找到对应的 API,按照平台指示的说明填写好参数,充分利用其诊断工具进行在线调试。(一般不会出什么问题)

没有问题的话我们就可以把平台代码复制下来了,在代码中改改 API ID 和 API KEY 参数即可。
此处 API ID 和 API KEY 参数填写仅供演示。为了安全起见,建议不要在代码中写入任何的密匙,应将密钥放置在环境变量中。详见:站内文章系统环境变量的设置与获取。
运行一下我们的脚本文件尝试一下:

没有返回错误信息,看了看控制台确实进行了刷新。如果出现问题,可以把 RequestId 粘贴到 API Doctor(使用诊断) - 云 API - 控制台 (tencent.com) 进行诊断。
附控制台看刷新纪录的方法,打开内容分发网络找刷新预热的操作记录:

如果你使用的边缘产品是腾讯云的 EdgeOne,操作也大差不差:API Explorer - 云 API - 控制台
脚本
注意系统中提前配置好 TENCENT_API_SECRETID、TENCENT_API_SECRETKEY 环境变量。
一般刷新网站首页和 RSS 订阅页即可。
最后的脚本文件文件:
1 | // Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher |
WordPress 解决方案
在 functions.php 下添加自动刷新腾讯云控制台 CDN 缓存的操作。
1 | /* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey */ |
本文参考
- 云 API 使用 API Explorer-快速入门-文档中心-腾讯云 (tencent.com)
- Node.js-SDK 中心-腾讯云 (tencent.com)
- npm 安装包的路径在哪里npm install 在哪里输入兮动人的博客-CSDN 博客
- npm 之安装、更新、卸载本地安装包_samllplum 的博客-CSDN 博客
- wordpress 腾讯 CDN 缓存实现发布/更新文章/评论自动刷新-轻刻年轮 (ly522.com)
- scripts | npm Docs (npmjs.com)
- npm scripts 使用指南 - 阮一峰的网络日志 (ruanyifeng.com)
- 云 API 云 API 密钥安全方案推荐-开发指南-文档中心-腾讯云 (tencent.com)
- 操作系统:Linux 环境变量配置的 6 种方法_export path 后 需要执行什么-CSDN博客
- Python 中的环境变量 – 读取、打印、设置 – 码微 (mwell.tech)





