Vibe Projects 静态部署协议 v1 免登录首次发布: POST /api/guest/projects Content-Type: application/json 请求体 { "name": "作品名", "spa": true } 不需要 Authorization。成功 201 返回 projectId、uploadUrl、deployToken、expiresAt、managementUrl、managementToken、managementExpiresAt 和预留 url。创建成功不代表部署完成,仍需上传 ZIP。每个网络 24 小时最多 3 个访客项目,超限返回 429。 发布凭证有效 24 小时;管理链接和管理凭证有效 30 天。managementUrl 是私密管理入口,不可公开分享。 凭证过期时,POST /api/guest/projects/{projectId}/token,Authorization: Bearer ,返回新的 deployToken、expiresAt、uploadUrl,同时撤销旧发布凭证。管理权限过期或丢失后无法自助恢复;不会自动删除已上线作品。 只托管静态文件,不运行用户代码、SSR、后端 API 或后台任务。 先检查项目,再在用户本地构建;不要上传项目源目录。 构建目录例如 dist、build、out;ZIP 根目录必须有 index.html。 不要包含 .env、密钥、node_modules、符号链接、隐藏文件、source map。 ZIP <= 50 MB;解压 <= 100 MB;单文件 <= 25 MB;文件数 <= 2000。 POST /api/projects/{projectId}/deployments Authorization: Bearer <项目发布凭证> Content-Type: application/zip 请求体:ZIP 原始二进制,不是 JSON,也不是 multipart。 凭证是秘密:仅发送至用户指定的平台地址,不写入仓库或构建产物。 成功:HTTP 201 { "deploymentId": "...", "url": "https://项目.作品域名", "fileCount": 12, "bytes": 12345 } 失败:HTTP 4xx / 5xx,JSON { "error": "原因" }。 401 凭证失效,413 超出大小限制,409 达到项目配额,415 类型错误。 HTTP 500 后可让用户检查发布记录,版本可能已经保存,可手动启用。 不要无条件自动重试:每次上传都会产生一个新版本。 单页应用支持无扩展名路由回退至 index.html,缺失的带扩展名资源返回 404。 作品以域名根路径发布;资源 base 应设为 /。 成功后访问返回地址验证,再向用户报告。