小毅
发布于 2026-08-16 / 1 阅读
0
0

PicGo - S3 图床配置与 Obsidian 图片上传

使用 PicGo 管理 Markdown 图床上传

平时使用 Obsidian 或 Markdown 写笔记时,图片是一个比较麻烦的问题。

如果直接把图片保存到本地,Markdown 中通常会出现:

![](attachments/image.png)

本地使用没有什么问题,但如果笔记还需要发布到博客、GitHub 或其他平台,就需要额外处理附件目录和图片路径。

使用 PicGo 后,可以把图片上传和链接生成这一步自动化:

截图 / 图片
    ↓
  PicGo
    ↓
上传到图床
    ↓
生成图片 URL
    ↓
写入 Markdown

这样 Markdown 中只需要保存最终的图片链接:

![](https://img.example.com/screenshots/example.png)

PicGo

PicGo 是一个图片上传工具,可以将本地图片、截图或者剪贴板中的图片上传到图床,并自动生成对应的访问地址。

GitHub 地址:PicGo

PicGo 本身支持多种图床,也可以通过插件扩展其他存储服务。

对于 Markdown 场景,最终需要的其实就是:

本地图片
   ↓
 PicGo
   ↓
  图床
   ↓
图片 URL

安装插件

PicGo 的扩展能力主要通过插件提供。

进入:

插件设置

可以搜索并安装需要的插件。

如果使用 S3 Compatible Storage,可以搜索对应的 S3 插件。注意,选择 wayjam 提供的版本。

S3 图床

使用 S3 Compatible Storage 时,整体结构比较简单:

PicGo
  │
  │ S3 API
  ▼
Bucket
  │
  ▼
Object
  │
  ▼
图片 URL

一般需要准备下面几个参数:

Endpoint
Bucket
Region
Access Key
Secret Key

不同对象存储服务在字段名称上可能略有区别,但实际对应的信息基本相同。

图片路径

如果长期使用图床,不建议直接使用原始图片名称,例如:

image.png
image-1.png
截图.png

随着图片越来越多,很容易遇到重名或者覆盖的问题。

我更喜欢使用图片内容的 Hash 作为文件名,例如:

screenshots/{sha256:0,2}/{sha256:2,2}/{sha256}.{extName}

生成后的路径类似:

screenshots/70/aa/70aa7019b0751efd1369db0312bc548445ec79ab486a2f7b1aa9c4a3afd824bc.png

目录结构:

screenshots
└── 70
    └── aa
        └── 70aa7019b0751....png

这样做有两个比较明显的好处:

  • 基本不会发生文件名冲突
  • 同一张图片可以得到稳定的文件名

最终生成的图片地址类似:

https://s3.example.com/screenshots/70/aa/70aa7019b0751....png

S3 插件配置

安装 S3 插件后,在 PicGo 中填写对象存储的信息。

例如:

  • 应用密钥 ID:xxx,从 s3 服务器获取
  • 应用密钥:xxx,从 s3 服务器获取
  • 桶名:bucket 的名字,从 s3 服务器获取
  • 上传文件路径,上传后,文件的相对 URL 路径,推荐 screenshots/{sha256:0,2}/{sha256:2,2}/{sha256}.{extName},注意,这个与插件相关,如果用别的插件,请注意对方是否有对应的配置
  • 地区:一般没有特殊要求的话 auto 就可以
  • 自定义节点:服务器的路径,例如 https://s3.example.com

  • 代理:一般不配置,根据需求来
  • 拒绝无效的 TLS 证书连接:如果链接是 HTTPS 的,选择为 yes,否则为 no
  • ACL 访问控制列表:保持默认
  • ForcePathStyle:S3 的 Bucket 访问通常有两种形式:
    • Path Style:Bucket 名称放在 URL 路径中,例如:
    https://s3.example.com/my-bucket/screenshots/example.png
    
    • Virtual-hosted Style:Bucket 名称作为域名的一部分,例如:
    https://my-bucket.s3.example.com/screenshots/example.png
    
    • ForcePathStyle 设置为 yes 时,会强制使用 Path Style;设置为 no 时,通常使用 Virtual-hosted Style

对于自己搭建的 S3 服务,如果没有专门配置 *.s3.example.com 这样的通配符 DNS 和证书,一般推荐设置为:

ForcePathStyle:yes

这样只需要配置一个 S3 域名,例如:

https://s3.example.com

Bucket 会自动作为 URL 路径的一部分。

  • 其余保持默认即可

  • bucket 前缀:与前面的 ForcePathStyle 类似,根据实际配置选择
  • 点击确定以保存配置

配置完成后,可以直接从 PicGo 上传一张测试图片,截图,点击剪贴板图片

上传成功后,PicGo 会返回 markdown 格式的链接

例如:

![](https://blog.nonee.top/note/2026/08/7c7ff563363483398ab31bc4f12dd3274e0d27e428bde5697f2fd51d6e32f745.png)

腾讯云 COS

腾讯云 COS 也可以通过 S3 插件进行配置。

认证信息对应:

应用密钥 ID:SecretId
应用密钥:SecretKey

Bucket 相关信息可以在腾讯云 COS 控制台中查看:

Bucket 名称:存储桶名称
Region:所属地域

例如 Bucket 的默认访问地址为:

https://my-bucket.cos.ap-beijing.myqcloud.com

在 PicGo 的 S3 插件中,自定义节点填写:

https://cos.ap-beijing.myqcloud.com

Bucket 名称单独填写:

my-bucket

其他选项:

拒绝无效 TLS 证书连接:开启
ACL:默认
ForcePathStyle:关闭
Bucket 前缀:开启

上传完成后,图片地址类似:

https://my-bucket.cos.ap-beijing.myqcloud.com/screenshots/70/aa/example.png

Markdown:

![](https://my-bucket.cos.ap-beijing.myqcloud.com/screenshots/70/aa/example.png)

配合 Obsidian

PicGo 和 Obsidian 配合以后,可以进一步简化图片插入流程。

理想的操作方式是:

截图
 ↓
复制到剪贴板
 ↓
Obsidian 中粘贴
 ↓
PicGo 上传图片
 ↓
自动生成图片 URL
 ↓
插入 Markdown

最终笔记中只会留下:

![](https://s3.example.com/screenshots/70/aa/example.png)

而不需要在 Vault 中额外维护:

attachments/
assets/
images/

下载插件 Image auto upload,配置如下

随后,在 obsidian 中粘贴,点击图片,可以看到已经是一个链接了

总结

PicGo 可以把原本需要手动完成的图片上传过程统一起来:

图片
 ↓
PicGo
 ↓
S3 Compatible Storage
 ↓
图片 URL

配合 Obsidian 后,整个过程可以进一步变成:

截图
→ 粘贴
→ 上传
→ 生成 Markdown 图片链接

最终 Markdown 中只保存图片 URL,图片本身统一由图床管理。


评论