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://cdn.jsdelivr.net/gh加速,最终替换为
https://cdn.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://cdn.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://cdn.jsdelivr.net/gh/zhangyj131/mdpicture/docs/g' "$fd" #实例 done echo "转换成功...."
第三步,picgo内改为github图床,并自定义图床url,https://cdn.jsdelivr.net/gh/用户名/图床仓库名
如此搞定,还是感觉使用github安全,但是这个cdn,不知道存活多久,但愿https://cdn.jsdelivr.net/gh
能长久。
PS:写完这个shell,后来才想到,在idea内可以全局替换的,白花了这么长时间。
后记
后来查了下,gitee条款本身不支持图床,jsdelivr其实也不支持图床协议内容[1],具体可以看知乎[2],骂错gitee了,不管怎么样,还是不使用gitee作为图床了,虽然最后3.28号gitee又让使用图床了。
References
[1]
协议内容: https://www.jsdelivr.com/terms/acceptable-use-policy-jsdelivr-net
[2]
知乎: https://www.zhihu.com/question/524345403
原文链接:https://www.csdn.net/tags/NtzaAg5sNzY4Mi1ibG9n.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/8238