Files
Genarrative/server-rs/crates/module-assets
2026-04-26 20:50:58 +08:00
..
1
2026-04-26 20:50:58 +08:00
2026-04-26 18:06:23 +08:00
2026-04-26 18:06:23 +08:00

module-assets 独立模块 package 占位说明

日期:2026-04-20

1. package 职责

module-assets 是资产任务与对象绑定模块 package后续负责

  1. asset_jobasset_objectasset_manifest 等资产状态模型
  2. 角色形象、动作、Qwen 精灵表、场景图、封面图等资产任务编排
  3. 业务实体与 OSS 对象的绑定关系
  4. apps/api-server 的 assets 兼容接口对接
  5. apps/spacetime-module 的资产表、reducer、view 聚合对接

2. 当前阶段说明

当前提交尚未进入完整资产状态建模,但已完成与本模块直接相关的前置基础设施与首版 schema 骨架:

  1. api-server 已具备 POST /api/assets/direct-upload-tickets
  2. platform-oss 已具备旧 /generated-* 前缀兼容的 PostObject 签名能力
  3. 资产对象引用口径已冻结为 bucket + object_key 双列
  4. module-assets 已落地:
    • AssetObjectAccessPolicy
    • asset_object 字段校验 helper
    • assetobj_ ID 前缀与初始版本常量
    • asset_entity_binding 输入、快照、返回记录与字段校验 helper
    • assetbind_ ID 前缀

当前 asset_object 表的字段、索引与可编码约束见:

  1. ../../../docs/technical/SPACETIMEDB_ASSET_OBJECT_TABLE_DESIGN_2026-04-21.md
  2. ../../../docs/technical/ASSET_OBJECT_CONFIRM_FLOW_DESIGN_2026-04-21.md
  3. ../../../docs/technical/ASSET_ENTITY_BINDING_REDUCER_DESIGN_2026-04-21.md

当前还已补齐:

  1. AssetObjectService
  2. 私有 bucket HEAD Object 后的对象确认写入
  3. 当前阶段的进程内 asset_object 去重存储

后续与本 package 直接相关的任务包括:

  1. 设计 asset_jobasset_objectasset_manifest
  2. 设计角色、动作、场景、精灵表相关资产表
  3. 对齐资产生成、发布、对象确认与兼容接口链路
  4. 接入 OSS 对象写入与绑定编排

3. 边界约束

  1. module-assets 负责资产任务状态、对象引用关系与模块级编排,不把二进制对象本身放回本地持久化目录真相中。
  2. OSS 上传、签名、对象读写等副作用通过平台适配完成,状态最终回写到 apps/spacetime-module 聚合的状态模型中。
  3. 前端兼容接口由 apps/api-server 暴露,但资产任务状态与对象绑定关系不能再次散落到本地文件判断逻辑里。
  4. 后续 SpacetimeDB 中的对象引用统一按 bucket + object_key 两列建模,不存完整 URL 作为真相字段。