Skip to content

资料文档模块 ​

资料文档模块在通用附件能力上提供完整的业务消费闭环,覆盖文档 CRUD、owner / admin 权限、附件绑定、移除、签名读取和软删除。

权限边界 ​

  • 普通用户默认拥有 document:create、document:read、document:update、document:delete,只能管理自己的文档。
  • admin 拥有全部文档权限,可以管理所有文档。
  • 超级管理员通过 SpecialRolesEnum.SuperAdmin 绕过 RBAC 和 owner 校验。

附件绑定 ​

文档附件使用 bizType = document、bizId = document.id,不新增关联表。创建和更新文档时,attachmentIds 表示完整附件集合:

  • 未传 attachmentIds:不修改附件。
  • 传入空数组:软删除当前所有文档附件。
  • 传入非空数组:新增项绑定到文档,不在集合中的旧附件软删除元数据。

文档保存、附件绑定和移除附件的软删除在同一个数据库事务中完成。附件校验失败时,文档写入会回滚。

访问与删除 ​

  • 文档附件默认私有;上传者可以通过通用附件更新接口修改 visibility。
  • 公开附件可以直接读取;私有附件必须通过文档权限接口签发短时 URL。
  • 已绑定文档的附件不能通过通用删除或头像绑定接口操作。
  • 删除文档时,文档和当前绑定附件在同一事务中软删除元数据,不删除物理文件。

文档附件在附件管理中心只作为绑定业务展示和跳转目标。已绑定文档的附件不能在附件管理中心修改可见性或软删除,必须回到文档编辑流程处理。

详情页附件操作 ​

文档详情页为每个附件提供复制链接、打开和下载。公开附件直接使用详情返回的绝对化 URL;私有附件先通过 GetDocumentAttachmentSignedUrl(documentId, attachmentId) 获取短时签名地址。下载请求在同一个签名 URL 上增加 download=1,由内容接口返回附件响应,不用 Bearer Token 发起浏览器导航请求。

取消保存产生的未绑定附件不在本文档模块中清理,由附件物理清理任务处理。

基于 MIT 许可发布