文档

共用任务与媒体

三个创作子站的公共运行能力、数据隔离、结果存储和授权边界

本页补充产品工程的目标约定,尚未完成迁移或跨服务验收。三个子站共用一个 Next.js 应用和公共能力;现有实现及历史部署不等于已符合这些约定。

职责归属

对象或能力权威归属其他服务如何使用
用户、会话、角色、余额、价格快照、资金流水平台产品查询身份与权限,调用平台记账
产品项目、文档、分镜、素材关系、候选选择和业务任务产品工程按平台用户 ID 和产品归属验证访问
产品上传、素材版本、长期保存的创作结果、对象存储配置产品工程的共用媒体模块子站经同一模块上传、保存、读取与保护引用
平台客户任务、模型操作和开发者 API 结果授权平台产品保存平台任务引用;开发者从平台访问本人结果
供应任务、Provider 查询、结果获取及供应侧对象媒体网关平台以服务凭据读取,客户不访问内部管理接口

平台不建立通用创作 Project、组织成员或共享资产领域。产品共用存储代码不表示所有用户或子站能互相读取素材。

同一应用内的数据隔离

  • 每个业务对象记录所属用户与产品;项目表按产品分组,公共任务和媒体表也必须保留作用域。读取、修改、结果登记和下载都在服务端校验归属,不能仅依靠页面路由或客户端传来的产品名。
  • 子站入口由受控域名映射确定,Worker 使用任务中保存的产品归属;未登记的 Host 不成为新产品作用域。三个子站分别校验产品管理员角色。
  • src/shared/ 放共用实现,src/products/* 放产品规则。跨产品素材复用需要明确的授权操作和引用关系,不因共用 PostgreSQL 自动开放。

上传与结果交付

  1. 用户上传由产品后端确认用户、项目和产品归属,再创建上传记录及受限上传凭据。浏览器不持有对象存储长期密钥;上传完成校验后才登记为可用素材。
  2. 模型调用仍通过平台。参考素材以供应协议支持的受限引用传递,不将产品存储凭据交给网关或供应商。平台 API 的独立开发者上传需求单独审计,不依赖 Studio 登录或数据库。
  3. 媒体网关取得供应结果并登记原任务。平台验证客户任务归属后交付客户结果;不得把供应管理 Token、任意内部对象 Key 或供应商临时链接作为永久公开资产。
  4. 产品共用媒体模块将需要长期保留的结果登记为产品素材,保存稳定引用与来源任务。是否需要复制物理对象,按保存期限与引用授权能力在验证后确定;不能依赖即将到期的 URL。
  5. 获取或保存失败只重试原结果的读取与登记。任务显示可恢复的结果保存状态,原生成成功事实与费用保留。

生成 Worker、媒体保存和平台结算各有持久状态及幂等回执;浏览器离开后仍能恢复。任务恢复采用原任务身份和租约,不重复创建付费任务。

文件访问与保留

  • 产品媒体入口校验产品、用户与引用归属后读取对象或签发短期链接;开发者 API 的结果由平台校验客户任务归属。平台账户停用不等于可以直接删除历史创作或资金证据。
  • 删除业务引用、删除物理对象和取消任务分别处理。仍被作品、候选、在途任务或历史记录引用的对象不能因单个页面删除而清理。
  • 网关保存供应对象,产品保存创作对象,分别执行各自的保留与备份规则。共同桶、复制策略和保留期限需要验证后确定;本次没有变更已有桶、密钥或清理器。
  • 旧网关文档中“Core 持有 file_id、所有产品经 Core 上传”的方案已被当前归属替代。历史对象、在途任务及来源证据保留,不能把该计划恢复成新系统前置。

验证场景

上传后刷新可读、跨用户和跨产品越权拒绝、过期链接可重新授权、网关成功后产品保存失败可恢复、Worker 重启不重做生成、仍有引用的对象不会提前删除。具体场景纳入平台集成验证。

On this page