feat(media): 素材删除 - 安全清理未引用的存储资源

删除素材前检查项目、画布、任务、其他素材、工作流、风格和声音引用;仅清理未复用的本地或 OSS/COS 对象。
This commit is contained in:
MasterChiefCN authored and GitHub committed 2026-08-16 13:11:30 +08:00
1 parent 9f182a2902
commit c7965e7934
8 files changed
+731 -29

No files matched your search

+2 -2
View File
@@ -109,7 +109,7 @@
- TanStack Query 使用稳定的业务 `queryKey`,写操作成功后主动 invalidate/refetch 相关 query;不要用页面级 `useEffect` 手工复制整个缓存。
- Zustand store 只保存跨页面状态和持久化配置;页面临时状态留在页面,媒体大对象不要塞进 localStorage。
- 生成任务、资源、画布、素材的本地缓存是后端不可用时的降级,不代表后端已保存;写路径必须区分“本地缓存成功”和“服务端持久化成功”。
- 媒体删除不会自动清理 OSS 远端对象;涉及删除提示和文档时必须说明这个边界。
- 素材删除会先校验项目、画布、任务、其他素材和相关业务记录的资源引用;无占用时同步清理服务器本地文件或 OSS/COS 对象,物理删除失败必须保留素材记录并返回明确错误。画布节点等其他业务记录的单独删除仍不自动回收资源。
## 6. 前端 UI 与设计系统
@@ -208,6 +208,6 @@
## 13. 当前边界
- 画布和素材支持登录后端同步;localForage 仍是缓存及后端/OSS 不可用时的降级存储。
- 媒体资源支持私有 OSS 或后端文件存储;删除节点或素材不会自动清理 OSS 远端对象。
- 媒体资源支持私有阿里云 OSS、腾讯云 COS 或后端文件存储;删除素材会在无其他业务引用时同步清理对应物理对象,删除画布节点等其他记录本身不主动回收资源。
- 用户 AI API Key 保存在浏览器本地,任务创建时可能提交到自部署后端;安全说明必须强调 HTTPS 和可信部署。
- Docker 静态资源和生产部署仍需按待测试清单验证,不得写成已全面生产验证。