惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News - Newest:
Hacker News - Newest: "LLM"
S
SegmentFault 最新的问题
The Cloudflare Blog
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
The Hacker News
The Hacker News
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
大猫的无限游戏
大猫的无限游戏
L
Lohrmann on Cybersecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
T
Threat Research - Cisco Blogs
博客园 - 叶小钗
量子位
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
S
Secure Thoughts
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Help Net Security
Help Net Security
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
T
Tor Project blog
NISL@THU
NISL@THU
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
The Register - Security
The Register - Security
Recent Announcements
Recent Announcements
N
News and Events Feed by Topic
B
Blog RSS Feed

山岳库博

自建虚拟局域网实现文明六稳定联机 追光者 快手面经(二〇二四年五月九日) 一文搞懂伪代码 2023 级新生周赛第二周题解 Swpp Backends 官方文档 Butterfly 友链魔改教程 在 MavenCentral 上发布你的项目 控制台游戏引擎开发文档 MI——高级合成表模块 人狼羊菜过河详细题解 蓝桥杯 2023 训练四 Java 全解 蓝桥杯 2023 训练三 Java 全解 蓝桥杯 2023 训练二 Java 全解 小白也能用的 SW 构建插件 MI—电力系统工作原理 MI文档——自动化GUI绘制 给博客添加追番页面 网站加载速度优化方案总结 给博客添加自定义的通知悬浮窗
全自动博客部署方案
空梦 · 2023-01-06 · via 山岳库博

全自动博客部署方案

发表于更新于

字数总计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 的获取见:https://support.huaweicloud.com/api-cdn/cdn_02_0026.html#cdn_02_0026__table18327155514612
endPoint: 'cdn.myhuaweicloud.com',
// 获取 ak/sk 见: https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html
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

avatar

全自动博客部署方案空 梦 | 山岳库博

更新于 2023-11-01

发布于 2023-01-06