重写
This commit is contained in:
@@ -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] 已确认对象可绑定到业务实体槽位
|
||||
|
||||
Reference in New Issue
Block a user