CDN jsdelivr加速github图床
在迁移博客之后,就切换了图床,使用github作免费的图床。但最近发现它不太稳定,常常打不开。研究发现可以用jsdelivr作github的CDN加速,只需替换下图片地址即可。这才是github图床正确的打开方式 :-)
jsdelivr加速github图片地址格式
如何把图片放到github repo不再赘述。图片路径格式如下:
https://raw.githubusercontent.com/{user}/{repo}/master/{folderpath}/{filename}
如果希望使用jsdelivr的CDN,需要将上面图片路径转换为:
https://cdn.jsdelivr.net/gh/{user}/{repo}/{folderpath}/{filename}
或者说可做前缀替换:
https://raw.githubusercontent.com/{user}/{repo}/master/
-->
https://cdn.jsdelivr.net/gh/{user}/{repo}/
举例,假设图片p.png
存放在user
repo
的a/
目录,那图片的原始地址如下:
https://raw.githubusercontent.com/user/repo/master/a/p.png
CDN加速地址:
https://cdn.jsdelivr.net/gh/user/repo/a/p.png
如果遇到如下错误:
Package size exceeded the configured limit of 50 MB. Try https://github.com/user/repo/tree/master/master/a/xxx.jpg instead.
大概率是图片地址写错了,比如这里就多了一个master
,正确地址应该是:https://cdn.jsdelivr.net/gh/user/repo/a/xxx.jpg
shell脚本替换所有post图片地址
可直接用如下脚本在Hexo根目录中执行完成替换工作:
#!/bin/bash
for f in ./source/_posts/*.md; do
echo "Process "$f
sed -i 's/https:\/\/raw.githubusercontent.com\/user\/repo\/master\//https:\/\/cdn.jsdelivr.net\/gh\/user\/repo\//' $f
done
Reference
https://blog.csdn.net/q906270629/article/details/115394248
https://zhuanlan.zhihu.com/p/76951130