[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:
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user