You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI大文件上传间歇性挂起:请求未抵达端点即停滞

FastAPI大文件上传间歇性挂起问题

环境

FastAPI搭配Uvicorn作为ASGI服务器

问题描述

上传约3.6MB的较大文件时,请求偶尔会在到达端点处理代码前无限挂起;上传约6KB的小文件从未出现该问题。问题呈间歇性随机出现,且未伴随任何代码或环境变更,定位原因难度较大。

症状

请求挂起无规律,并非每次都会触发。出现挂起时,请求完全未抵达端点逻辑,因此端点内的打印语句、日志均不会执行。

代码示例

from fastapi import FastAPI, File, UploadFile
import uvicorn
from uvicorn.config import Config
import asyncio
import logging

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

app = FastAPI()

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    print("This print statement does not execute when the issue occurs.")
    await asyncio.sleep(5)  # Simulate processing delay
    return {"message": "Success"}

if __name__ == "__main__":
    config = Config(app=app, host="0.0.0.0", port=3092, log_level="info")
    server = uvicorn.Server(config=config)
    server.run()

已尝试的调试措施

  • 使用aiofiles实现异步文件保存,试图减少内存问题与阻塞IO影响,但未解决问题
  • 将日志级别提升至DEBUG后发现:请求挂起时,multipart数据的处理流程启动后会中途停滞,无法完成整个multipart解析过程

内容的提问来源于stack exchange,提问作者nomalDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:53:23