From 959defb938feeda4edf575b830dad8bc925f29cc Mon Sep 17 00:00:00 2001 From: Wenjie Zhang Date: Thu, 4 Dec 2025 14:42:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(knowledge=5Frouter):=20=E5=A4=84=E7=90=86Mi?= =?UTF-8?q?nIO=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E6=97=B6=E7=BB=A7=E7=BB=AD=E5=88=A0=E9=99=A4=E7=9F=A5=E8=AF=86?= =?UTF-8?q?=E5=BA=93=E8=AE=B0=E5=BD=95=20Fixes=20#362?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加对MinIO删除文件失败的异常处理,确保即使MinIO操作失败(如旧知识库无MinIO实例),也能继续从知识库删除记录 --- server/routers/knowledge_router.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/routers/knowledge_router.py b/server/routers/knowledge_router.py index 782be605..a52bfe9a 100644 --- a/server/routers/knowledge_router.py +++ b/server/routers/knowledge_router.py @@ -411,8 +411,16 @@ async def delete_document(db_id: str, doc_id: str, current_user: User = Depends( try: file_meta_info = await knowledge_base.get_file_basic_info(db_id, doc_id) file_name = file_meta_info.get("meta", {}).get("filename") - minio_client = get_minio_client() - await minio_client.adelete_file("ref-" + db_id.replace("_", "-"), file_name) + + # 尝试从MinIO删除文件,如果失败(例如旧知识库没有MinIO实例),则忽略 + try: + minio_client = get_minio_client() + await minio_client.adelete_file("ref-" + db_id.replace("_", "-"), file_name) + logger.debug(f"成功从MinIO删除文件: {file_name}") + except Exception as minio_error: + logger.warning(f"从MinIO删除文件失败(可能是旧知识库): {minio_error}") + + # 无论MinIO删除是否成功,都继续从知识库删除 await knowledge_base.delete_file(db_id, doc_id) return {"message": "删除成功"} except Exception as e: