全自动博客部署方案
发表于更新于
字数总计815阅读时长2分钟阅读量
前言
Netlify 本身是支持 GitHub 上传后自动构建的,但是每次构建完毕后都需要到 CDN 手动刷新缓存,这着实是一件麻烦事。
所以我便想到了使用 CDN 提供的 API 完成自动刷新缓存,那么如何调用 API 呢?答案就是通过 Netlify 的 Functions 完成自动化。
教程
我们假设读者在阅读本篇时,已经在 Netlify 上部署了网站,如果不会部署,可以见:《从零开始搭建博客》
首先,我们需要确定你使用的 CDN 是否支持 API 调用,如果支持的话,打开 CDN 的官网就能找到相关的文档。
首先,我们需要在博客的根目录中创建 Netlify functions,默认的目录是:[root]\netlify\functions\
(你也可以在 Netlify 中自定义目录),在这个目录下创建一个名为deploy-succeeded.js
的 js 文件,然后输入以下内容:
注意:因为代码中包含您的 token 或密码等敏感信息,请妥善保存代码!
注意:因为代码中包含您的 token 或密码等敏感信息,请妥善保存代码!
注意:因为代码中包含您的 token 或密码等敏感信息,请妥善保存代码!
首先运行指令安装需要的插件:
1 | npm install cdn-refresher --save
|
目前插件支持刷新多吉云、又拍云、阿里云、华为云的 CDN 缓存,按照如下格式使用即可:
1 2 3 4 5 6 7 8 9 | const refresher = require('cdn-refresher')
exports.handler = () => refresher.refreshDogeCloud({ accessKey: '你的 key', secretKey: '你可 secret', rtype: 'path', urls: ['https://example.com/*'] }).then(() => console.log('CDN 缓存刷新成功')) .catch(err => console.error(err))
|
1 2 3 4 5 6 7 8 9 | const refresher = require('cdn-refresher')
exports.handler = () => refresher.refreshUpyun({ username: '用户名', password: '密码', urls: ['https://example.com/*'] }).then(() => console.log('CDN 缓存刷新成功')) .catch(err => console.error(err))
|
1 2 3 4 5 6 7 8 9 10 11 12 | const refresher = require('cdn-refresher')
exports.handler = () => refresher.refreshAli({ accessKey: '你的 key', accessSecret: '你的 secret', objectType: 'Directory', objectPaths: ['example.com/'], force: false }).then(() => console.log('CDN 缓存刷新成功')) .catch(err => console.error(err))
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const refresher = require('cdn-refresher')
exports.handler = () => refresher.refreshHuawei({ endPoint: 'cdn.myhuaweicloud.com', ak: 'xxx', sk: 'xxx', refreshType: 'directory', mode: 'detect_modify_refresh', urls: ['https://example.com/'] }).then(() => console.log('CDN 缓存刷新成功')) .catch(err => console.error(err))
|
如果你实在不会写代码,也可以在评论区留言你的 CDN 服务商名称,我有时间了会写好加在博文中。
注意:Netlify Functions 是有免费额度的,但是只用来刷新 CDN 缓存的话一般是用不完的,详情请见 Netlify 官方文档。
创作不易,扫描下方打赏二维码支持一下吧ヾ(≧▽≦*)o
全自动博客部署方案空 梦 | 山岳库博
更新于 2023-11-01
发布于 2023-01-06