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

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

View File

@@ -103,17 +103,9 @@ func (s *Service) UpsertUserAsset(userID string, raw json.RawMessage) (UserDataS
}
func (s *Service) DeleteUserAsset(userID string, id string) error {
if _, err := s.repo.AssetForUser(userID, id); err != nil {
return err
}
references, err := s.repo.AssetReferenceCount(id)
if err != nil {
return err
}
if references > 0 {
return BadAuthRequest("素材仍被项目或镜头引用,请先解除引用")
}
return s.repo.DeleteAsset(userID, id)
s.storageMu.Lock()
defer s.storageMu.Unlock()
return s.deleteUserAssetWithResources(userID, id)
}
func (s *Service) UserAssets(userID string) ([]json.RawMessage, error) {