Loading

gitee图床迁移github,使用免费cdn加速

gitee个垃圾玩意,图床都禁用,以后不再使用国产这些东西,容易被坑。

晚上花了点时间把blog的图床由gitee迁移github,并且使用cdn jsdelivr加速,在没有梯子情况下,也可以看到blog引用的图片。

我使用的是typora+picgo+github+cdn jsdelivr的组合方式。

第一步,先把gitee上的图床仓库迁移到github

1.从gitee clone下来,在github创建仓库,push github仓库,保持仓库名和目录和gitee的相同,在master分支。

第二步,替换blog内图床的地址

比如我的图床一个图片 https://gitee.com/yulewo123/mdpicture/raw/master/docs/20201010000942.png

需要替换为 https://raw.githubusercontent.com/zhangyj131/mdpicture/master/docs/20220326144026.png

即把文件名前面的替换即可,这里写个shell进行替换。

但是 https://raw.githubusercontent.com域名,由于网络问题,许多人看不了,因此使用cdn域名 https://fastly.jsdelivr.net/gh加速,最终替换为

https://fastly.jsdelivr.net/gh/zhangyj131/mdpicture/docs/20220326144026.png 切记url中没有master。

具体替换shell内容如下

#!/bin/bash

#文件名replace.sh
#使用说明:把该shell放到和markdown文件同目录下,然后右键Git Bash here,执行 sh ./replace.sh 即可 

oldurl="https://gitee.com/yulewo123/mdpicture/raw/master/docs"  #改为自己旧url,比如gitee url
newurl="https://fastly.jsdelivr.net/gh/zhangyj131/mdpicture"  #改为自己新url,比如github url

echo "原url=${oldurl}"
echo "新url=${newurl}"

#把url中的/替换为\/ 参考https://unix.stackexchange.com/questions/315473/how-to-obtain-instead-after-a-sed-substitution
oldurlConvert=`echo ${oldurl}|sed 's/\//\\\\\//g'`  #echo "https://gitee.com/yulewo123/mdpicture/raw/master/docs"|sed 's/\//\\\//g' 结果 https:\/\/gitee.com\/yulewo123\/mdpicture\/raw\/master\/docs 但是表达式内要多加\
echo "oldurlConvert=$oldurlConvert"

newurlConvert=`echo ${newurl}|sed 's/\//\\\\\//g'` 
echo "newurlConvert=${newurlConvert}"

#####################执行#####################
for fd in ./*.md
do
	echo "处理文件-> "$fd
	#sed -i 's/$oldurlConvert/$newurlConvert/g' "$fd" #用单引号无法进行替换,在shell里用sed,如果有$这样的特殊字符,单引号要换成双引号才可以
	sed -i "s/$oldurlConvert/$newurlConvert/g" "$fd"  #用"$fd" 原因是文件名可能带空格
	#sed -i 's/https:\/\/gitee.com\/yulewo123\/mdpicture\/raw\/master\/docs/https:\/\/fastly.jsdelivr.net\/gh\/zhangyj131\/mdpicture\/docs/g' "$fd" #实例
done

echo "转换成功...."

第三步,picgo内改为github图床,并自定义图床url,https://fastly.jsdelivr.net/gh/用户名/图床仓库名

image-20220330003348495

如此搞定,还是感觉使用github安全,但是这个cdn,不知道存活多久,但愿https://fastly.jsdelivr.net/gh能长久。

PS:写完这个shell,后来才想到,在idea内可以全局替换的,白花了这么长时间。

后记

后来查了下,gitee条款本身不支持图床,jsdelivr其实也不支持图床协议内容,具体可以看知乎,骂错gitee了,不管怎么样,还是不使用gitee作为图床了,虽然最后3.28号gitee又让使用图床了。

posted @ 2022-04-05 20:54  不晓得侬  阅读(43)  评论(0编辑  收藏  举报