Coding图床配置
前言
之前用Gitee图床,没想到这么快就寄了,还好的是虽然不能通过外链访问了,但是图片还是在的,现在的问题有2个,找到新的替代图床、以及将旧图床的图片迁移至新图床。
- 替代图床:一直不愿意使用Github仓库作为图床,因为网上一直有声音说有被封号、或删库的风险,也不愿意使用公共图床,总感觉把图片放在别人的服务器上不安全,于是经过一番寻找,决定使用Coding暂时作为图床使用(也不知道能撑多久😥)
- 旧图床的迁移:这个比较简单,由于图片文件名一样,只是换了个存放位置,所以可以使用python写个脚本,将原本文章中的图片链接替换为新的图片链接即可
本文实现 Coding + Picgo Core + Typora 一条龙配置服务,配置完成即可在Typora写作,插入图片自动上传到Coding仓库中。
软件下载
-
下载nodejs(自行百度)
-
安装picgo.exe,如下
打开typora后,选择 【文件】-【偏好设置】-【图像】,看下图:
-
下载插件 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创建仓库
-
创建
-
选择全功能的(懂的可以选择右边,最后按需启用相应功能即可)
-
创建仓库
-
然后就像Github、Gitee仓库那样使用就行了,我这里创建好了,commit一些文件、文件夹上去后是这样的
配置文件信息设置
配置文件在 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"
}
}
关注以下几个字段:
首先找到仓库的路径,获取一些信息:
-
"groupName" 组名,根据上图进行修改,我的是 "ajream"
-
"project" 项目名,根据上图进行修改
-
"repoName" 仓库名,根据上图进行修改
-
"Token" 获取方式:
进入个人账户设置
新建token
打勾
复制token,粘贴到config.json配置文件
-
"floder" 设置你的图片保存在哪个文件夹,像我之前瞎搞的时候弄了2个文件夹,这里就保存在 img 文件夹了(吐个槽:作者把文件夹folder的单词拼成了floder🤣)
-
"save_with_date": 设置为true的话,会在保存的文件夹(我的是img)下,以日期"YYYY/MM/DD"的格式创建文件夹,并把图片放在这个新建的文件夹里,也就是同一天上传的图片会被放到一起,我这里设置为true,方便后面整理
-
"customUrl" 自定义域名,没有的话设置为空
""
即可 -
"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
作为前缀即可
picgo与picgo-core的官方地址如下:
picgo | picgo-core |
---|---|
图形化界面操作 | 使用命令行操作 |
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/16378530.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)