[fix]:[FL-205][模型删除时同步删除存储文件]

- 更新 delete_asset 函数,在删除数据库记录前先删除物理文件
- 遍历模型的所有 release,逐个删除其存储路径下的文件
- 使用 try-except 确保文件删除失败不会阻塞数据库清理
- 新增测试用例 test_delete_asset_removes_storage_files 验证文件删除功能

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
chengkai3
2026-06-28 11:15:06 +08:00
parent a9fabc380d
commit 5f0b4b0256
2 changed files with 59 additions and 0 deletions
+11
View File
@@ -888,6 +888,17 @@ def delete_asset(db: Session, asset_id: str) -> bool:
item = get_asset_by_id(db, asset_id)
if not item:
return False
# Delete physical files for all releases before deleting database records
for release in item.releases:
try:
mount = _resolve_mount(db, release.storage_mount_code)
driver = _build_driver_or_400(mount)
driver.delete_path(release.storage_root_path, is_dir=True, recursive=True)
except Exception:
# Log error but continue deletion - don't let file deletion failure block database cleanup
pass
db.delete(item)
db.commit()
_publish_change("asset.deleted", {"action": "deleted", "asset_id": asset_id})