fix(knowledge_router): 处理MinIO删除文件失败时继续删除知识库记录

Fixes #362

添加对MinIO删除文件失败的异常处理,确保即使MinIO操作失败(如旧知识库无MinIO实例),也能继续从知识库删除记录
This commit is contained in:
Wenjie Zhang 2025-12-04 14:42:37 +08:00
parent 100f9dac7f
commit 959defb938

View File

@ -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: