手机通过独立的 Studio 发布台登录后发布图文。命令行工具可从服务器回环地址调用 Bun Publisher,或者通过 SSH 转发访问回环端口。
发布步骤
- Studio 使用登录会话。回环客户端携带内部令牌和唯一的
Idempotency-Key。 - 提交图文。Studio 使用同源
/api/v1/thoughts或/api/v1/posts,回环客户端使用/v1/thoughts或/v1/posts。 - 服务返回
202 Accepted和作业地址。 - 公开发布等待作业进入
published。私有草稿保留在服务器,直到主动发布。
管理已有内容
手机应用等可信客户端可以通过 GET /api/v1/thoughts 与 GET /api/v1/posts 分页查询内容,再通过带 ID 或 slug 的详情地址读取完整正文。详情响应会同时返回 ETag 和 resource.version。
编辑使用 PATCH,删除使用 DELETE。这两类请求必须同时携带原详情响应中的 If-Match: <ETag> 和新的 Idempotency-Key。若电脑、CMS 或另一台手机已先修改同一篇内容,旧版本提交会收到 412 version_conflict,不会覆盖新内容。
删除的 Markdown 和能够确认归属的 API 图片会先进入 .data/publisher/trash/,不会直接永久清除。
构建失败时,Nginx 仍然读取上一个完整版本,不会把生成一半的页面展示给访客。
安全边界
- 正式 Publisher 令牌保存在服务器上,浏览器使用可撤销的登录会话。
- Publisher 和会话网关只监听回环地址。
- 私有草稿及专属附件存放在公开构建目录之外。
- API 发布会修改服务器源码,本地再次部署前要先同步这些新内容。
完整的服务器安装、Nginx 与 systemd 配置保存在仓库的 docs/studio-deployment.md 中。