Skip to content

高级技巧 ​

命令行上传 2.1.0+ ​

PicGo在2.1.0版本开始支持命令行调用PicGo客户端进行上传了。

上传的命令是 upload (用于上传剪贴板图片)以及 upload xxx.jpg 用于上传具体路径的图片。

Windows ​

Windows可以通过 你安装的PicGo的路径\PicGo.exe upload 来调用上传。

macOS ​

macOS可以通过 /Applications/PicGo.app/Contents/MacOS/PicGo upload 来调用上传。

Linux ​

Linux可以通过 你安装的PicGo的路径/PicGo.AppImage upload 来调用上传。

PicGo-Server的使用 2.2.0+ ​

PicGo在2.2.0版本开始内置了一个小型的服务器,用于接收来自其他应用的HTTP请求来上传图片。

默认监听地址: 127.0.0.1,默认监听端口:36677

HTTP调用上传剪贴板图片 ​

  • method: POST
  • url: http://127.0.0.1:36677/upload (此处以默认配置为例)

即可上传。

返回的数据:

json
{
  "success": true, // or false
  "result": ["url"]
}

HTTP调用上传具体路径图片 ​

  • method: POST
  • url: http://127.0.0.1:36677/upload (此处以默认配置为例)
  • request body: {list: ['xxx.jpg']} 必须是JSON格式

json
{
  "success": true, // or false
  "result": ["url"]
}

HTTP 调用上传表单图片 2.4.0+ ​

从 2.4.0 版本开始,PicGo-Server 支持通过表单上传图片文件了。感谢 @happy-game 的贡献!

  • method: POST
  • url: http://127.0.0.1:36677/upload (此处以默认配置为例)
  • request body: form-data,key为 files,value为图片文件,可以多张图片。

指定本次上传的图床配置 3.0.3+ ​

从 PicGo GUI 3.0.3 开始,可以在 POST /upload 的 URL 中指定已经保存的图床配置,无需先在界面中切换默认图床。这次选择只对本次请求生效,不会修改默认图床、各图床当前选中的配置或本地配置文件。下一次不带参数上传时,仍使用原来的默认配置。

请先在 PicGo 中保存所需的图床配置,并确保 PicGo 正在运行且已开启 PicGo-Server。以下参数适用于上面的三种上传方式:剪贴板、本地文件路径和表单文件上传。参数放在 URL 中,请求体仍按原来的格式传入。

URL 参数说明
uploader图床类型标识,例如 github、qiniu、picgo-cloud。传入后只在该类型内查找配置。
configName已保存的配置名称,推荐日常使用。支持中文,匹配时去除首尾空白并忽略大小写。
configId已保存配置的 _id,精确匹配。配置重命名后 ID 保持不变。

这里的 uploader 是图床类型标识,configName 才是你给某份配置起的名称。例如 GitHub 图床下保存了一份名为 Work 的配置,可以使用 ?uploader=github&configName=Work。

调用示例 ​

以下示例使用默认地址和端口,请将配置名称、ID 和文件路径替换为实际值。

bash
# 按配置名称上传剪贴板图片。
curl -X POST 'http://127.0.0.1:36677/upload?uploader=github&configName=Work'

# 按配置名称上传本地文件。
curl -X POST 'http://127.0.0.1:36677/upload?uploader=github&configName=Work' \
  -H 'Content-Type: application/json' \
  -d '{"list":["/absolute/path/image.png"]}'

# 按配置名称上传表单文件。
curl -X POST 'http://127.0.0.1:36677/upload?uploader=github&configName=Work' \
  -F 'files=@/absolute/path/image.png'

# 也可以通过配置 ID 指定上传配置。
curl -X POST 'http://127.0.0.1:36677/upload?configId=your-config-id' \
  -H 'Content-Type: application/json' \
  -d '{"list":["/absolute/path/image.png"]}'

中文配置名可以使用 URLSearchParams 编码。名称中的空格、+、& 等字符也会被正确处理,避免手动拼接 URL 时被误当成参数分隔符:

js
const url = new URL('http://127.0.0.1:36677/upload')
url.searchParams.set('uploader', 'github')
url.searchParams.set('configName', '配置一')

const response = await fetch(url, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ list: ['/absolute/path/image.png'] })
})
const result = await response.json()

配置查找规则 ​

传参情况使用哪份配置
三个参数都不传沿用原来的默认上传配置。
只传 uploader使用该图床当前选中的配置;如果没有有效的当前配置,则取该类型的第一份配置。
uploader + configName 或 configId在指定图床类型内查找。
只传 configName 或 configId在所有已注册图床类型中查找,结果必须唯一。
同时传 configId 和 configName优先使用唯一匹配的 ID;ID 找不到或不唯一时,再按名称查找。传了 uploader 时,两次查找都限定在该类型内。

不同图床可以保存同名配置。如果只传 configName=Work,而 GitHub 和七牛各有一份 Work,需要再传入 uploader 来确定使用哪一份。最终找不到配置或匹配到多份时会报错,不会自动改用默认图床。

只传图床类型但该类型没有已保存的配置时也会报错。uploader=picgo-cloud 可以直接使用当前登录状态,但这些参数不能用来切换 PicGo Cloud 账号。

如果需要使用配置 ID,可以通过 PicGo 设置中的「打开配置文件」查看 uploader.<type>.configList,找到目标配置的 _id。这些参数只用于引用已保存的配置,不用于在 URL 中传入 token 等图床凭据。

参数错误 ​

参数不能为空或只有空白,同一参数也不能在 URL 中重复出现。参数无效、图床类型未注册、配置不存在或无法唯一定位时,服务返回 HTTP 400,code 和 message 会说明原因。例如:

json
{
  "success": false,
  "result": [],
  "items": [],
  "code": "UPLOAD_CONFIG_AMBIGUOUS",
  "message": "配置名称匹配到多个图床类型,请指定 uploader。"
}

上面的 message 为示意,实际内容会按语言设置说明查找范围与匹配结果。错误码列表见 PicGo-Core 上传参数错误。成功时仍返回原有的上传结果,result 为图片 URL 列表。

PicGo手机客户端联动 2.3.0+ ​

如果你想在手机上使用 PicGo,可以安装 flutter-picgo,感谢 @hackycy 的贡献!

可以通过点击主窗口左下角信息栏按钮,找到「生成图床配置二维码」菜单

然后通过 flutter-picgo 的扫码功能,一键导入图床配置。

PicGo 修复工具箱 2.4.0+ ​

从 2.4.0 版本开始,在主界面的 i 图标按钮中,有一个「PicGo 修复工具箱」功能,当你遇到 PicGo 使用异常的时候,可以尝试用修复工具箱自主排查和修复问题。