将Gitee图床转到Github


昨天(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保存下来(只会显示一次,如果丢了下次需要重新申请)

image-20220326144049674

然后打开picGo,按照下图设置就ok了

仓库名:

image-20220326144259394

分支名设置成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)

猜你喜欢

转载自blog.csdn.net/qq_46311811/article/details/123755904