把几百张图片一张张拖上传区不现实。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 接口文档。