Coding图床配置

前言

之前用Gitee图床,没想到这么快就寄了,还好的是虽然不能通过外链访问了,但是图片还是在的,现在的问题有2个,找到新的替代图床、以及将旧图床的图片迁移至新图床。

  • 替代图床:一直不愿意使用Github仓库作为图床,因为网上一直有声音说有被封号、或删库的风险,也不愿意使用公共图床,总感觉把图片放在别人的服务器上不安全,于是经过一番寻找,决定使用Coding暂时作为图床使用(也不知道能撑多久😥)
  • 旧图床的迁移:这个比较简单,由于图片文件名一样,只是换了个存放位置,所以可以使用python写个脚本,将原本文章中的图片链接替换为新的图片链接即可

本文实现 Coding + Picgo Core + Typora 一条龙配置服务,配置完成即可在Typora写作,插入图片自动上传到Coding仓库中。

coding_

软件下载

  1. 下载nodejs(自行百度)

  2. 安装picgo.exe,如下

    打开typora后,选择 【文件】-【偏好设置】-【图像】,看下图:

    image-20210419161251100
  3. 下载插件 coding 插件 和 super-prefix

#先切换到picgo安装目录下:cd C:\Users\用户名\AppData\Roaming\Typora\picgo\win64>
C:\Users\用户名\AppData\Roaming\Typora\picgo\win64>picgo install coding super-prefix

上传配置

首先要新建一个仓库用于存放图片,然后是配置插件,让插件将图片上传到指定仓库中。

Coding创建仓库

  1. 创建image-20220606232022672

  2. 选择全功能的(懂的可以选择右边,最后按需启用相应功能即可)image-20220606232222855

  3. 创建仓库

    image-20220606232808841

  4. 然后就像Github、Gitee仓库那样使用就行了,我这里创建好了,commit一些文件、文件夹上去后是这样的

    image-20220606233112871

配置文件信息设置

配置文件在 C:\Users\用户名\.picgo目录下的 config.json文件中

打开插件的配置文件,把下面的内容覆盖掉 config.json 原来的内容

{
  "picBed": {
    "uploader": "coding",
    "current": "coding",    // 与uploader一致
    "transformer": "path",

    "coding": {
      "groupName": "ajream", 
      "Project": "images",
      "repoName": "img",
      "Token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",  //你的token
      "branch": "master",
      "floder": "img",
      "save_with_date": true,  
      "customUrl": ""   //自定义域名
    }
  },
  "picgoPlugins": {
    "picgo-plugin-gitee-uploader": true,
    "picgo-plugin-super-prefix": true,
    "picgo-plugin-coding": true
  },
  "picgo-plugin-super-prefix": {
    "prefixFormat": "YYYYMMDDHHmmss_"  // 图片命名格式,这里设置为加上日期+时间作为前缀
  },
  "picgo-plugin-gitee-uploader": {
    "lastSync": "2022-05-30 01:23:50" 
  }
}

关注以下几个字段:

首先找到仓库的路径,获取一些信息:

image-20220606233738790

  1. "groupName" 组名,根据上图进行修改,我的是 "ajream"

  2. "project" 项目名,根据上图进行修改

  3. "repoName" 仓库名,根据上图进行修改

  4. "Token" 获取方式:

    进入个人账户设置

    image-20220606234108884

    新建token

    image-20220606234318731

    打勾

    image-20220606234538637

    复制token,粘贴到config.json配置文件

    image-20220606234820360

  5. "floder" 设置你的图片保存在哪个文件夹,像我之前瞎搞的时候弄了2个文件夹,这里就保存在 img 文件夹了(吐个槽:作者把文件夹folder的单词拼成了floder🤣)

    image-20220606235121853

  6. "save_with_date": 设置为true的话,会在保存的文件夹(我的是img)下,以日期"YYYY/MM/DD"的格式创建文件夹,并把图片放在这个新建的文件夹里,也就是同一天上传的图片会被放到一起,我这里设置为true,方便后面整理

  7. "customUrl" 自定义域名,没有的话设置为空""即可

  8. "branch" 图片上传的分支名,没有特殊要求用 master 即可

Python脚本

随便写了个脚本,用于将之前的博客文章中旧图片的链接转为新的链接,首先对比下新旧图片链接的差异:

https://gitee.com/ajream/images/raw/master/img/2021-04-1916-12-52_image-20210419161251100.png
https://ajream.coding.net/p/images/d/img/git/raw/master/img/2021-04-1916-12-52_image-20210419161251100.png

经过对比新、旧图片链接,可以发现后面部分(如下)是相同的,因此只需要把前面部分替换掉即可

/raw/master/img/2021-04-1916-12-52_image-20210419161251100.png

参考代码如下

import os

print("输入需要遍历的文件夹的路径,如:D:\MyBlogs\source\_posts")
dir_path = input(r"")

print("输入旧的图片链接的前缀,如:https://gitee.com/ajream/images")
gitee_name_prefix = input("")

print("输入新的图片链接的前缀,如:https://ajream.coding.net/p/images/d/img/git")
coding_name_prefix = input("") 

def update_img_name(fpath):
    new_text = []
    with open(fpath, 'r', encoding="utf8") as f:
        text = f.readlines()
        for t in text:
            if t.startswith("![") or t.startswith("<img") or ("/images/raw/master/" in t):  # 判断是图片链接
                if(gitee_name_prefix in t):
                    t = t.replace(gitee_name_prefix, coding_name_prefix)   # 替换为新链接
            new_text.append(t)
#     with open(fpath[:-3] + "_after.md", 'w', encoding="utf8") as nf:    # 修改后另存为新文件
    with open(fpath, 'w', encoding="utf8") as nf:                        # 在原文件直接修改
        for nt in new_text:
            nf.write(nt)
    print("ok")


def find_files(file_path):   # 递归文件夹下的所有md文件
    if os.path.isfile(file_path):    #判断是否为文件
        if file_path.endswith(".md"):
            file_list.append(file_path)
        return 
    else:           #如果是目录,执行下边的程序
        for file_ls in os.listdir(file_path):#循环目录中的文件
            find_files(os.path.join(file_path, file_ls))#再次判断目录中的文件,实现递归,函数调用函数本身

file_list = []     # 存储查找到的md文件路径

find_files(dir_path)

for i in range(len(file_list)):
    print(f"第{i}篇---{file_list[i]}")
    update_img_name(file_list[i])

其他

网上有很多图床,但很多时候大家可能找不到相应的插件,实际上使用picgo为核心的图床插件基本可以在npm官方仓库里找到,输入 picgo作为前缀即可

前往npm

image-20220615094801573

picgo与picgo-core的官方地址如下:

picgo picgo-core
图形化界面操作 使用命令行操作
posted @ 2022-06-15 15:09  aJream  阅读(198)  评论(1编辑  收藏  举报