5月19日更新:昨天Gitee开始对开源仓库进行审查了,我本地的还有部分没有转的图床链接又失效了,建议大家能换还是尽量换吧,本篇放到Github上也不是长久之策,我目前使用的是七牛云,使用了快两个月体验很好,具体配置可以看我这一篇博客:使用PicGo配置七牛云图床
昨天(3月25日)在写笔记的时候突然发现Gitee图床突然用不了了,显示的都是Gitee的图标,吓了我一跳,然后赶紧检查了一下,最后也不知道怎么回事,直接在Gitee打开图片就可以看,然后在群里问别人发现很多人都是这样,但是我的笔记图片可都在Gitee上,这不是要我命呢,然后只能赶紧想办法,有两个方案:要么是购买阿里云的oss服务器,要么是转到Github上继续白嫖,口袋吃紧的我果断选择了后者,Github申请token的过程与Gitee差不多,我在这里简单说一下。
Github导入Gitee仓库
首先先把Gitee图床仓库导过来:
然后从Gitee复制过来图床链接,设置新图床名称,然后点击导入等待导入完成就ok了。
申请TOken
下面说一下怎样申请Token:右上叫头像->Setting->进去后滑到最下面,左边Developer settings->Personal access tokens->Generate new token
,然后按照下图设置,最后滑到最下面点击Generate token,将token保存下来(只会显示一次,如果丢了下次需要重新申请)
然后打开picGo,按照下图设置就ok了
仓库名:
分支名设置成master就可以,Token填写刚刚申请的,存储路径是以当前仓库为相对路径的图片保存路径,自定义域名是为了加速访问的,前面都一直,最后两个换成仓库名就可以,https://cdn.jsdelivr.net/gh/你的仓库名
,然后点击确定,选择设置为默认图床
文件路径处理
上面全部完成之后就可以把你的Gitee仓库同步到GitHub仓库了,然后就是处理本地文件了,我写了一个py的脚本,可以直接把文件夹下的所有文件的路径全部转换了,包括子文件夹,使用时候只需要把36,38,40行的文件路径修改一下就行了
注意,这里是直接在原文件改的,如果不放心的话可以先手动备份一下,转换完成后如果转换好了再删掉备份,我自己试过是没有问题的
import os
import os.path
def trans(files, path):
for file in files:
filepath = os.path.join(path, file)
if os.path.isdir(filepath):
# 如果是文件夹则递归处理
next_files = os.listdir(filepath)
trans(next_files, filepath)
continue
root, ext = os.path.splitext(filepath) # root为文件名,ext为后缀(包括.)
if(ext != ".md"):
# 只处理markdown文件
continue
print("正在处理:", filepath)
source_file_path = filepath
dest_file_path = filepath + ".bak"
# 读入文件修改后写入新文件,然后把原文件删除,把新文件重命名为原文件
with open(source_file_path, encoding='utf-8') as fr, open(dest_file_path, 'w', encoding='utf-8') as fw:
for line in fr:
new_line = line.replace(source_link, dest_link)
fw.write(new_line)
os.remove(source_file_path)
os.rename(dest_file_path, source_file_path)
if __name__ == "__main__":
# 待处理目录,注意这里需要是双反斜杠
basepath = "D:\\blogs"
# 原地址
source_link = "https://gitee.com/qlz-huo/drawing-bed/raw/master"
# 新地址
dest_link = "https://cdn.jsdelivr.net/gh/hQlz/draw-bed"
files = os.listdir(basepath)
# 处理文件
trans(files, basepath)