我平时用 Markdown 写东西,博客、项目文档、产品说明基本都在本地写好,再同步到各个平台。配图一直是最打断思路的环节:截图、存到本地、再手动拖到网页上传、复制链接、粘回文章,一套动作走完,刚才想到哪都忘了。之前为了抢救旧博客里成片的裂图,我还专门记录过一次老博客图片批量抢救的实操过程,也是从那次之后,我下定决心要把「截图即上传、自动回填链接」这条链路彻底配通。
为什么是 PicGo 加自定义 Web 图床
PicGo 是不少人在用的图床客户端,截图之后按一个快捷键就能完成上传,并把图片链接写进剪贴板。它内置了一些常见图床,但问题也明显:要么得去对应平台申请一串密钥、配对象存储,要么哪天平台策略一变,原来的配置就不能用了。
真正省心的是它的 web-uploader(自定义 Web 图床) 插件。只要某个图床服务提供标准的 HTTP 上传接口,你把接口地址和返回格式填进去,PicGo 就能接上去。这样一来,图床服务可以随时换,而客户端和写作习惯完全不用动。
第一步:安装 web-uploader 插件
打开 PicGo,左侧进入「插件设置」,在搜索框输入 web-uploader,找到对应插件后点安装,装完按提示重启一次 PicGo。重启之后在「图床设置」里能看到「自定义Web图床」这一项,就说明插件已经生效了。
第二步:逐个参数到底填什么
这是最容易卡住的地方,因为每个图床接口的字段名都不一样。自定义 Web 图床里主要有下面几项:
| 参数 | 含义 | 填写说明 |
|---|---|---|
| 图床配置名 | 这套配置的名字 | 随便起,自己认得出来就行 |
| API 地址 | 接收上传文件的接口 URL | 必须是 POST 接口,且要精确到具体路径 |
| POST 参数名 | multipart 上传时文件字段的名字 | 由服务端决定,常见是 file,也有 image |
| JSON 路径 | 上传成功后,图片 URL 在返回 JSON 里的位置 | 取到的内容必须是能直接打开的图片地址 |
| 自定义请求体 Body | 额外需要携带的参数 | 有些接口用它来做身份标识 |
我自己目前在用的是图床小镇(官网 imgbed.cn ),它正好开放了兼容这种自定义 Web 图床的上传接口,不必再自己去申请和配置对象存储那一套。按照它的接口说明,几个参数是这样对应的:
- API 地址:
https://playground.z.wiki/img/api/upload - POST 参数名:
file - JSON 路径:
url - 自定义 Body:
{"uid": "你的token"}
这里有个小细节:平时访问页面用的是官网域名,而上传走的是它单独的 API 域名,两者不一样属于正常情况,照着文档把 API 地址填完整即可。Body 里的 uid 用来标识这次上传的归属;如果你只是想先验证上传通路能不能通,可以暂时留空,确认链路没问题之后再回头补上。
第三步:验证上传是否成功
填完先点「确定」,然后回到「图床设置」,把这套自定义图床设为默认图床。接着用两种方式各验证一次:
- 在「上传区」直接拖一张本地图片进去;
- 或者随便截一张图,用 PicGo 的上传快捷键走剪贴板上传。
上传成功后,「相册」里会出现这张图,点开就能看到外链地址,选择 Markdown 格式复制,粘到文章里就是  的形式,整个过程不用碰浏览器。
我踩到的几个坑,照着排基本能解决
1. 一点上传就报 404。 十有八九是 API 地址没填全:要么漏了末尾的 /upload,要么复制 URL 时带进来了空格或换行。POST 地址必须精确到接口本身,只填到网站首页是没有用的。
2. 报 400 或者参数错误。 这是 POST 参数名和服务端对不上。服务端要的是 file,你填成 image,它就找不到上传的文件。判断办法是看接口返回里的 message 提示,或者直接翻该图床的接口文档确认字段名,别靠感觉猜。
3. 提示上传成功,但插进来的链接打不开,甚至是一段 JSON。 问题出在 JSON 路径。接口返回的往往是一个带多层结构的对象,图片地址可能藏在 data.url 而不是顶层的 url。JSON 路径要填到真正存放图片地址的那个字段:填浅了拿到的是整个对象,填深了又取不到值。
4. 返回 401 或未授权。 说明接口需要身份标识,但你没带,或者 Body 格式写错了。要特别注意,有的接口把标识放在请求头里,有的放在 Body 里,这两种不能混;上面这套是放在 Body 中的,写的时候保证 JSON 结构完整、引号都是英文半角。
5. 明明填好了却不生效。 重点检查三件事:有没有把这套图床真正「设为默认」、装完插件有没有重启 PicGo、是不是建了重名配置结果选到了旧的那一套。
顺手把 Typora 也接上
如果你用 Typora 写 Markdown,可以在「偏好设置 → 图像」里把图像上传服务选为 PicGo,指向本地安装的 PicGo 应用。配好之后,在 Typora 里截图粘贴,图片会自动上传并就地替换成外链,连手动复制链接这一步都省了。它的配置思路和上面完全一致,Typora 只是在背后调用了 PicGo 的上传能力而已。
小结
配通之后,我的写作流程变成了:截图 → 快捷键上传 → 链接自动进剪贴板 → 直接粘进文章,全程不用离开编辑器。自定义 Web 图床最大的意义,是把「写作客户端」和「图床服务」解耦,哪天想换图床,只需要改一处接口配置。
唯一要上心的,是选一个能长期稳定访问、链接不会轻易失效的服务,不然今天传得痛快、明天文章里全是裂图。这种被动我在给 GitHub 项目 README 配托管图 和抢救旧博客时都实打实经历过。我目前这套配置用着稳定,有需要的可以去官网看看:imgbed.cn