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 repoa/目录,那图片的原始地址如下:

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