资源生命周期
Token 语义
| Token | 所有者 | 表示内容 | 终止条件 |
|---|---|---|---|
resourceToken | Resource Service | 一个临时图片资源 | TTL、主动删除或最终消费 |
streamToken | Markify API | 一个实时预览会话 | TTL、主动关闭或资源关闭 |
streamToken 不是资源标识,也不是最终渲染标识。上传后只有 resourceToken;只有创建预览流后才会得到 streamToken。
资源状态
text
上传成功
│
▼
READY ────── finalize ─────▶ FINALIZING
│ │
│ delete / TTL ├─ rollback ─▶ READY
▼ │
DELETE_PENDING ◀──── consume ─────┘
│
└─ 活动读取租约归零后删除文件和记录- TTL 从上传成功时开始,读取不会续期。
- 活动读取使用租约,删除不会截断正在输出的资源流。
- 最终渲染会一次性锁定
resources[]中的全部源资源。 - 图片图层引用不会自动消费,除非对应 token 也出现在
resources[]。
预览流约束
- 一个
resourceToken最多对应一个活动streamToken。 - 对同一资源重复创建流会返回现有会话。
- 流只保留一份最新帧,不保存历史帧。
- 新订阅者会收到当前帧;后续发布继续通过同一 HTTP 响应输出。
- API 重启后所有流失效;Resource Service 重启后所有资源失效。
最终消费时机
最终渲染不是在 Worker 成功时消费资源,而是在 ZIP 响应触发 finish、确认完整交付之后消费。客户端中断触发 abort,源资源回滚,以便调用方重试。