帮助中心

用 API 批量上传图片

2026 年 10 月 30 日 · 约 6 分钟读完

把几百张图片一张张拖上传区不现实。Picmo 提供 HTTP 上传接口,脚本、CI、博客发布流程都能直接调用。

一、接口一览

  • 上传地址:POST https://www.picmo.cn/api/v2/upload
  • 认证:请求头 Authorization: Bearer <Token>
  • 表单字段:file(二进制文件)
  • 可选字段:album_id(上传到指定相册)

Token 在控制台「API 令牌」里生成,类似密码,请只存放在服务端或本地配置中。

二、用 curl 试一张

curl -X POST https://www.picmo.cn/api/v2/upload \
  -H "Authorization: Bearer 你的Token" \
  -F "file=@/path/to/photo.jpg"

成功时返回 JSON,关键字段是 data.links.url,就是可直接使用的直链。

三、批量上传脚本

把同一目录下的图片逐个提交,收集链接写入文件:

#!/bin/bash
TOKEN="你的Token"
OUT="links.txt"
: > "$OUT"
for f in ./images/*.jpg ./images/*.png; do
  [ -f "$f" ] || continue
  url=$(curl -s -X POST https://www.picmo.cn/api/v2/upload \
    -H "Authorization: Bearer $TOKEN" \
    -F "file=@$f" | grep -o '"url":"[^"]*"' | head -1 | cut -d'"' -f4)
  echo "$url" >> "$OUT"
  echo "已上传 $f -> $url"
done

实际项目里建议加失败重试与并发控制,避免瞬时请求过多被限流。

四、接入 CI / 发布流程

典型用法是把上传步骤放在构建脚本里:文档仓库提交时,遍历其中的图片,上传后把 Markdown 里的相对路径替换成返回的直链,再发布到站点。这样仓库只存图片源文件,站点用 CDN 链接。

五、错误码

  • 401:Token 无效或缺失;
  • 413:文件超过大小限制,压缩后重传;
  • 422:字段名不对,确认是 file;
  • 429:请求过于频繁,加延迟或降低并发。

完整字段与响应示例见 API 接口文档。