This commit is contained in:
2026-05-06 10:28:16 +08:00
parent 06b3e54a39
commit 20451904bd
5 changed files with 111 additions and 24 deletions
+9 -6
View File
@@ -32,30 +32,33 @@ async def upload_stp(
current_user: User = Depends(get_current_active_user)
):
"""上传STP文件并存储到数据库"""
logger.info(
f"[UPLOAD] 用户={current_user.username}(id={current_user.id}) "
f"文件={file.filename} 材料={material} "
f"大小={file.size if hasattr(file, 'size') else 'unknown'}"
)
if not file.filename.lower().endswith(('.stp', '.step')):
logger.warning(f"[UPLOAD] 拒绝: 不支持的文件类型 - {file.filename}")
raise HTTPException(400, "只支持STP/STEP文件")
task_id = str(uuid.uuid4())
# 保存文件
file_path, file_size = await file_handler.save_uploaded_file(file)
logger.info(f"[UPLOAD] 文件已保存: {file_path} ({file_size} bytes), task_id={task_id}")
# 创建存储集成服务实例
storage_service = StorageIntegrationService()
# 保存STP文件到RustFS + PostgreSQL
stp_file = await storage_service.save_stp_file(
session=db_session,
file_path=file_path,
original_filename=file.filename,
user_id=current_user.id
)
logger.info(f"[UPLOAD] STP文件已存入RustFS+PG: stp_file.id={stp_file.id}")
# 创建处理任务记录
await storage_service.create_processing_task(db_session, task_id, stp_file.id)
# 创建任务记录(存入 Redis)
task_info = create_task_info(
task_id=task_id,
status=ProcessingStatus.PROCESSING,
@@ -66,11 +69,11 @@ async def upload_stp(
)
await redis_task_manager.set_task(task_id, task_info)
# 后台处理(使用独立数据库会话,避免请求会话关闭问题)
background_tasks.add_task(
processing_service.process_file_with_storage,
task_id, file_path, stp_file.id, material
)
logger.info(f"[UPLOAD] 后台处理已调度: task_id={task_id}")
return {
"task_id": task_id,