This commit is contained in:
2026-04-21 19:17:31 +08:00
parent d234d27cc0
commit 89129ef1f4
83 changed files with 13329 additions and 176 deletions

View File

@@ -11,17 +11,17 @@
- [x] 设计对象键前缀
- [x] 设计 `object_key -> cdn_url` 解析策略
- [x] 设计 public / private 对象访问策略
- [ ] 设计签名 URL 输出策略
- [x] 设计签名 URL 输出策略
- [x] 设计 `x-oss-meta-*` 元数据规范
- [ ] 设计内容 hash / 版本字段规范
## 2. 上传与对象确认
- [x] 实现浏览器 `PostObject` 直传签名接口
- [ ] 实现 STS 临时授权接口
- [ ] 实现服务端上传 helper
- [ ] 实现上传完成后的对象确认接口
- [ ] 实现对象绑定业务实体 reducer
- [x] 实现 STS 临时授权接口
- [x] 实现服务端上传 helper
- [x] 实现上传完成后的对象确认接口
- [x] 实现对象绑定业务实体 reducer
补充说明:
@@ -29,20 +29,41 @@
2. 当前已在 `server-rs/crates/platform-oss``server-rs/crates/api-server` 落下最小可用链路:
- `PostObject` 直传签名能力
- `/api/assets/direct-upload-tickets`
- `/api/assets/objects/confirm`
- 兼容旧 `/generated-*` 前缀的对象键规划
- `.env/.env.local` 的 OSS 环境变量加载
3. 当前仍未进入 `STS`、服务端上传 helper、对象确认与 `SpacetimeDB` 绑定阶段。
- 服务端 `HEAD Object` 校验
- `asset_object` 确认真实 SpacetimeDB 持久化
- `/api/assets/objects/bind`
- `asset_entity_binding` 业务实体槽位绑定
- `/api/assets/sts-upload-credentials` 禁用式 contract
- 服务端 `PutObject` 上传 helper
3. 当前 bucket 已明确为私有读写;后续正式存储口径改为 `bucket + object_key` 双列,不再把匿名公开 URL 当成真相。
4. 当前 STS 接口按“服务器上传、Web 只下载”的需求固定为 `403` 禁用式 contract不向浏览器下发 OSS 写权限。
5. `2026-04-21` 已通过 live test 验证:真实 OSS 上传后,`/api/assets/objects/confirm` 能把 `xushi-dev + object_key` 写入本地 `genarrative-dev.asset_object`,并可继续通过 `/api/assets/objects/bind` 绑定到业务实体槽位。
## 3. 资产任务系统
- [ ] 设计 `asset_job`
- [ ] 设计 `asset_object`
- [x] 设计 `asset_object`
- [ ] 设计 `asset_manifest`
- [ ] 设计 `character_visual_asset`
- [ ] 设计 `character_animation_asset`
- [ ] 设计 `scene_image_asset`
- [ ] 设计 `sprite_sheet_asset`
补充说明:
1. `asset_object` 当前已冻结核心存储口径为:
- `bucket`
- `object_key`
2. 详细设计见:
- [../docs/technical/SPACETIMEDB_ASSET_OBJECT_STORAGE_DESIGN_2026-04-21.md](../docs/technical/SPACETIMEDB_ASSET_OBJECT_STORAGE_DESIGN_2026-04-21.md)
- [../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md](../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md)
- [../docs/technical/ASSET_OBJECT_CONFIRM_FLOW_DESIGN_2026-04-21.md](../docs/technical/ASSET_OBJECT_CONFIRM_FLOW_DESIGN_2026-04-21.md)
- [../docs/technical/M6_OSS_SERVER_UPLOAD_AND_STS_POLICY_2026-04-21.md](../docs/technical/M6_OSS_SERVER_UPLOAD_AND_STS_POLICY_2026-04-21.md)
3. 当前已在 `server-rs/crates/spacetime-module` 落下 `asset_object` 首版表骨架,并完成 `api-server -> SpacetimeDB` 的最小对象确认闭环。
## 4. 资产生成链路
- [ ] 迁移角色主形象生成
@@ -82,6 +103,8 @@
- [ ] 兼容 `/api/assets/qwen-sprite/save`
## 7. 阶段验收
- [x] OSS 直传对象可被服务端确认并写入 `asset_object`
- [ ] 所有新生成资产都写入 OSS
- [ ] 前端仍能通过旧路径习惯访问资源
- [ ] 资产任务状态可查询
- [x] 已确认对象可绑定到业务实体槽位