Skip to content

上传版本

为设计稿(原型)上传一个新版本。支持用户 JWT 或组织 API Key 两种鉴权。

端点

http
POST /api/designs/:id/versions
Authorization: Bearer <JWT 或 pk_...>
Content-Type: multipart/form-data

鉴权

请求头 Authorization: Bearer <token>

  • token 以 pk_ 开头 → 按 API Key 鉴权,且该 Key 必须属于设计稿所在组织(否则 403)。
  • 否则按用户 JWT 鉴权,调用者必须是设计稿所属组织成员(否则 403)。

表单字段

字段场景说明
file / zip脚本 / API Key单个 zip 包,自动解压托管。(filezip 等价)
files + paths + kind网页多文件多个文件 + 同序相对路径 + 类型("zip""files");pathsfiles 数量须一致。

单个 .zip 一律按压缩包解压(即便 kind=files 也如此),避免存成不可预览的裸 zip。 上传总大小上限 100MB

示例(API Key 上传 zip)

bash
curl -X POST "https://developer.yunku.live/api/designs/<id>/versions" \
  -H "Authorization: Bearer pk_xxxxxxxx_xxxx" \
  -F "file=@./dist.zip"

响应 201

json
{
  "version": {
    "id": "...",
    "designId": "...",
    "number": 1,
    "createdAt": "2026-06-12T00:00:00.000Z"
  }
}

错误

状态错误码含义
401UNAUTHORIZED缺少令牌,或令牌无效 / 已吊销
403FORBIDDENAPI Key 不属于该组织,或 JWT 用户非成员
404NOT_FOUND设计稿 id 不存在
400BAD_REQUEST非 multipart/form-data;缺少文件字段;pathsfiles 数量不一致;kind=zip 时上传多个文件
413PAYLOAD_TOO_LARGE超出 100MB 上限
400BAD_REQUEST触发 zip 解压防护(路径穿越 / zip bomb)

完整错误码见 错误码