[Question]: About uploaded file size limit

该报错通常发生在通过源码方式部署 RAGFlow 后上传 PDF 等文件时,系统提示文件过大但实际文件只有 2MB。优先排查 MAX_CONTENT_LENGTH 环境变量是否生效,并确认是否存在 Python 内置上传限制或反向代理(如 Nginx)的额外限制。

快速结论:该报错通常发生在通过源码方式部署 RAGFlow 后上传 PDF 等文件时,系统提示文件过大但实际文件只有 2MB。优先排查 MAX_CONTENT_LENGTH 环境变量是否生效,并确认是否存在 Python 内置上传限制或反向代理(如 Nginx)的额外限制。

适用环境:RAGFlow 源码部署(非 Docker 方式),涉及 Flask 后端的 MAX_CONTENT_LENGTH 配置;Issue 中提到的运行环境不涉及 Python 版本、CUDA、显卡等硬件信息,未提供具体版本号。

最快修复方案:暂无确认的一步修复方案。可优先尝试调整 .env 文件中的 MAX_CONTENT_LENGTH 配置(例如设置为 1073741824,即 1GB),但这在 Issue 中仅作为可能修复方案被提出,未被验证一定能解决问题。

注意事项:源码部署时,确认 MAX_CONTENT_LENGTH 是否被正确加载到 Flask 配置中;如果前端或本地网络环境存在代理(如 Nginx),需要同时检查代理的上传大小限制。Issue 中提到的“上传失败但文件仅 2MB”表明实际触发限制的可能不是 MAX_CONTENT_LENGTH,而是其他环节。

问题场景

用户通过源码方式启动 RAGFlow(非 Docker 方式),在上传 PDF 文件到知识库或 Agent 时,系统提示无法上传大文件,但实际文件大小仅为 2MB。Issue 中出现过类似的错误信息:“Run failed: Server disconnected without sending a response”,发生在上传大于 5MB 的文件时。

报错原文

Run failed: Server disconnected without sending a response

另外,用户描述的原始报错为“can’t upload large file”,但实际文件大小只有 2MB,因此报错文本中并未显示具体的大小限制数值。

原因分析

可能原因:RAGFlow 的 Flask 后端通过 MAX_CONTENT_LENGTH 环境变量控制上传文件大小上限,源码部署时该变量未正确生效,或前端反向代理(Nginx、Apache)存在更严格的上传限制。Issue 中提到,本地部署的 RAGFlow 默认单文件上限为 1GB、批量上传 32 个文件,而 demo.ragflow.io 的上限为 10MB。因此 2MB 文件被拒绝,说明限制可能来自环境变量配置、Python 侧中间件或代理层,而非 RAGFlow 默认配置。

另一个可能是 MAX_CONTENT_LENGTH 虽然被设置,但 Flask 配置未正确加载,或者代码中读取环境变量的逻辑未覆盖当前启动方式。Issue 中的复现者已确认 .env 中设置了 MAX_CONTENT_LENGTH=1073741824,但仍然遇到问题,说明并非简单的环境变量缺失。

环境排查

  • 确认 .env 文件中是否设置了 MAX_CONTENT_LENGTH,并检查该值是否符合预期(例如 1073741824 表示 1GB)。
  • ps aux | grep nginx 检查系统是否存在 Nginx 或其他反向代理进程;如果存在,需检查其 client_max_body_size 配置。
  • 确认 Flask 应用启动时确实读取了 .env 中的 MAX_CONTENT_LENGTH,可在日志中搜索对应的配置加载信息。
  • 确认启动命令是否为 python api/ragflow_server.py,以及该命令是否直接引用 .env 文件。

解决步骤

  1. 在 RAGFlow 项目根目录的 .env 文件中,确认或添加 MAX_CONTENT_LENGTH=1073741824(即 1GB),保存后重启 RAGFlow 服务。这是 Issue 中提到的可能修复方案,可优先尝试。
  2. 如果配置已设置但仍然报错,检查 Flask 是否真正读取了该环境变量。在 api/ragflow_server.py 或相关配置模块中,确认 app.config["MAX_CONTENT_LENGTH"] 的赋值逻辑是否正确执行。
  3. 检查是否有反向代理(如 Nginx)位于前端。如果有,修改 Nginx 配置中的 client_max_body_size 至少大于目标文件大小(例如 client_max_body_size 1024m;),然后重启 Nginx。
  4. 如果没有 Nginx,但仍出现“Server disconnected”错误,考虑是否与网络超时有关,尝试增大 Flask 或 Gunicorn 的请求超时时间。
  5. 如果上述步骤均无效,建议升级 RAGFlow 到最新版本,因为 Issue 中维护者提到后续发布了多个更新,问题可能已在后续版本中修复。

验证方法

修改配置后,重新上传之前失败的 2MB PDF 文件或大于 5MB 的文件,观察是否还能正常上传。如果能够成功上传到知识库并完成解析,说明问题已解决。同时,观察服务端日志中是否不再出现与请求体大小相关的报错。

参考来源

infiniflow/ragflow #6903

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18287

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注