PicGo/PicList + GitHub 搭建图床
这里用专门的 GitHub 公共仓库存放公开文章图片。客户端负责把文件写入仓库,再返回图片 URL;上传完成后还要确认读者可以匿名访问该 URL。
准备工作
创建新仓库
新建一个专门的图片仓库,例如 docs-images,选择 Public 并初始化 README,使目标分支实际存在。记下完整的 owner/docs-images 和分支名;owner 代表你的用户名或组织名,不能原样照抄。分支可能是 main、master 或自定义名称,按仓库实际值填写。
公共仓库中的图片和历史内容都可以被他人读取,不要将私人截图或配置备份作为图床素材。

public 的,否则存储的图片不能正常访问。生成 Token
Token 类型与权限应按所用客户端核对,不能把旧截图中的 repo 勾选视为所有客户端的最低权限:
| 客户端 | 当前维护方依据 | 本文采用的配置 |
|---|---|---|
| PicList | GitHub 图床文档 明确给出 fine-grained Token | 仅选择图床仓库,授予 Contents: Read and write |
| PicGo | 官方配置手册 的示例仍使用 classic Token 与 repo | 按官方示例配置,但先理解下述较大的授权范围 |
PicList 的 fine-grained Token:进入 GitHub「Settings」→「Developer settings」→「Personal access tokens」→「Fine-grained tokens」,选择正确的 Resource owner,在仓库范围中仅选图床仓库,并设置 Contents 读写权限与有效期。组织仓库可能需要批准。普通图片上传不需要 Workflows 写权限,依据是 GitHub 仓库内容 API。
PicGo 的 classic Token 示例:打开 GitHub Token 设置,选择 Tokens (classic) → Generate new token (classic),填写用途和有效期,再按官方示例授权。repo 涵盖账户有权访问的公共及私有仓库,并非仅限当前图床。GitHub 另有范围较小的 public_repo,限公共仓库,但仍不是单仓库授权;使用它前应核对实际客户端所需操作并测试。权限定义见 GitHub scope 说明。
PicGo 上传器使用仓库内容 API,但本文没有对所有已发布客户端版本执行 fine-grained Token 测试,因此不把 API 支持直接写成所有 PicGo 版本均已验证支持。

注意
Token 生成后只显示一次。 保存到私人密码管理器,只填入客户端的 Token 字段,不放进图片 URL、截图或公开的配置文件。
配置 PicGo 或 PicList
进入客户端的 GitHub 图床设置,创建或编辑一套上传配置。两种客户端的界面名称略有差异,字段含义如下:
| 字段 | 示例 | 说明 |
|---|---|---|
| 图床配置名 | 文章图片 | 客户端内用于辨认的名字 |
仓库名 / repo | owner/docs-images | 用户或组织名加仓库名,不填完整网页 URL 或 .git 后缀 |
分支 / branch | main | 必须是该仓库实际存在的目标分支 |
Token / token | 在本机填写 | 使用上一步创建的令牌 |
存储路径 / path | img/ | 仓库内目录,以 / 结尾;留空表示仓库根目录 |
自定义域名 / customUrl | 首次测试留空 | 有已经可用的资源域名后再设置 |
保存配置,选中它,并将 GitHub 设为默认图床。PicList 的上传配置与云端管理配置是不同入口;本节配置的是上传。

上传与结果检查
- 上传一个名称未被使用的小图片,例如
upload-test-20261024.png。 - 在 GitHub 的目标分支和
img/目录确认文件存在,打开检查是否为刚上传的图片。 - 从客户端复制图片 URL,在未登录 GitHub 的浏览器窗口打开,再粘贴到文章预览检查。
默认直链通常形如 https://raw.githubusercontent.com/owner/docs-images/main/img/upload-test-20261024.png。这是字段示例,需换成自己的值;不要使用带 blob 的 GitHub 文件网页地址作为图片地址。首次上传验证完成后,再配置自定义域名或其他链接改写。
同名文件不应被视为已经覆盖成功。使用新文件名,或通过明确的仓库文件更新流程替换,再检查实际内容;某些客户端可能返回已有路径,而文章仍显示旧图。
失败排查与 Token 更换
| 现象 | 检查 |
|---|---|
401 | Token 是否完整、过期或已撤销 |
403 | 写权限、仓库授权范围、组织批准或 SSO、分支规则,以及日志中的 API 限流说明 |
404 | owner/repo 拼写、仓库与分支是否存在;授权不足时也可能返回 404 |
409 / 422 或同名冲突 | 仓库是否初始化、分支是否正确、同一路径是否已有文件;换一个新文件名测试 |
| 上传成功但图片打不开 | 是否为公开可读的图片直链,是否误用了网页 URL,自定义域名与目录是否拼接正确 |
| 图片仍是旧内容 | 先看仓库文件,再核对引用 URL 和浏览器/CDN 缓存 |
查看客户端日志时保留状态码和错误描述,分享前去掉 Token。定期更换令牌时,先创建新 Token,在每个使用它的客户端中替换并保存,上传一张测试图确认成功后,再撤销旧 Token;如果旧令牌已泄露,则先撤销,再配置新令牌。更换 Token 通常不改变已有公开图片地址。