1 目标
Obsidian文档可以本地存储,文档主要由markdown和图片组成。markdown是纯文本,格式简单占空间也小,在存储和分享的过程中,插在文档中的图片就比较麻烦。所以希望把文本和图片分开存储,并且能简单快速地分享给别人,比如发布博客时,不用一张一张贴图。
图床是一个比较简单的解决方案,它是一种在线图片存储服务,可以用来上传、存储、管理和分享图片。通常,图床会提供图片的URL地址,可以在网页、博客、社交媒体等平台中使用。一般使用腾讯云、阿里云的存储服务实现,也可以使用Github,Gitee代码托管服务实现。主要看图多不多,访问量大不大。
本文将介绍在Ubuntu系统下,用 Obsidian+PicGo+Gitee 的方式做个免费图床,适用于图片不多,访问量不大的场景,同时讨论了扩展性。
2 原理
2.1 Obsidian
离线的文档管理工具,可以通过 Obsidian QuickShare, Obsidian to Notion等插件进行网页共享,个人觉得通过图床,把文档和图片分开更加方便。
2.2 PicGo
PicGo是一款用于上传、管理和分享图片的工具。它支持多种图床服务,可以方便地将图片上传到图床并生成图片链接,可以在网页、博客、社交媒体等平台中使用。
常见有PicgoApp和Picgo-core两种使用方式,PicgoApp是在本机端口启动一个本地服务,本地应用通过http访问使用它;Picgo-core则比较简单,可以通过命令行调用,无需后台守护进程,占用资源少,但是没有图形界面,操作起来比较困难。(本文使用了Picgo-core方式)
2.3 Gitee
Gitee类似Github,是一个代码托管服务,也可以存储图片,并给图片提供外链。它是国内服务,所以比Github速度更快。与收费服务相比,它提供的空间比较小,如果外链访问量太大,有被Gitee官方关停项目的风险。
2.4 工具整合
PicGo支持多种服务,比如Gitee, Github,七牛云,阿里云等,通过对它的配置,可以轻松切换图床,而不影响上层应用,以方便图床切换。Obsidian可以通过插件方式调用PicGo,把本地图片切换为图床存储。另外,我的系统是Ubuntu 22.04,使用这些工具组合,几乎看不到CPU和内存使用率(文中方法不限于Linux)。
3 方法
3.1 配置Gitee
- 建一个公开项目作为图床(只有公开项目,图片链接才能供所有人访问)
- 生成令牌:项目界面->右上角->设置->私人令牌->生成新令牌,权限只选projects
3.2 配置PicGo
3.2.1 搭建nodejs环境
nodejs是一个开源、跨平台的 JavaScript 运行环境。下最新版本:https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
压缩包,并将其解压。
sudo apt-get remove nodejs # 删除旧版本
sudo sudo cp -r node-v12.18.3-linux-x64 /usr/local/lib/nodejs
export PATH=/usr/local/lib/nodejs/bin:$PATH
echo "export PATH=/usr/local/lib/nodejs/bin:$PATH" >> ~/.bashrc
此后时,node, npm 程序可正常执行。
3.2.2 安装picgo
安装
npm config set registry https://registry.npm.taobao.org # 设置国内源
npm install -g cnpm
npm install picgo -g
picgo install gitee-uploader # 安装gitee支持插件
配置
picgo set uploader
# 选gitee(用上下键和回车)
# repo:输入gitee项目名(英文名)
# token: 设置成gitee的令牌
# 其它选项保持默认即可
picgo use uploader
# 选gitee
此时生成~/.picgo/config.json,pico配置完成
测试上传一张图片:
picgo upload xxx.png
如果命令行提示成功,则已打通picgo和gitee。
3.3 配置Obsidian
安装插件:设置->第三方插件->浏览->搜索“Image auto upload Plugin”->安装
在插件设置界面将 Default uploader 设为 picgo-core
将 pico core path设为:picgo upload
安装后,再Obsidian中贴图时,图片就自动上传了图床。
如果有wl-clipboard报错,可尝试以下方法:
sudo apt -y install wl-clipboard
npm install clipboard
3.4 实现效果
最终我没有打开贴图时自动上传(Auto Pasted upload),而只在需要上传单个文档中的图片时,通过Ctrl+p调出命令行,选 "Upload all images",操作完之后,界面中的图就替换成了图床地址。相对的,使用“Download all images”,则图片下载到本地,本地图片地址替换了网页地址。
4 其它方案
4.1 安装 PicgoApp 版本
我是Ubuntu 22.04,所以下了AppImage版本
国内下载:
https://mirrors.sdu.edu.cn/github-release/Molunerfinn_PicGo/v2.3.1/
chmod 777 PicGo-2.3.1.AppImage # 加权限
./PicGo-2.3.1.AppImage # 运行,此时右上角出现picgo图标
- 打开主窗口
- 在插件设置中,安装gitee-uploader插件
- 在图床设置的giee中设置项目地址和token
- 在工作区中设置上传图片
网友评论