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

Companion Uppy上传超5GB文件时/complete请求返回413错误求助

解决Companion Uppy大文件上传/complete请求413错误的方案

问题核心

上传大于5GB的文件时,/complete请求返回413(PayloadTooLargeError),但请求负载仅188k,自定义的body-parser limit配置未生效。

可能原因及解决步骤

1. Companion自身未应用body-parser限制配置

你自定义的body-parser配置是在自己的Express应用中,但Companion是独立的Express服务,你的配置不会作用到它身上。需要修改Companion内部的body-parser设置:

  • 若为源码部署Companion:
    找到Companion的Express初始化文件(通常在src/server/express.js或类似路径),替换原有的body-parser注册代码:
    const bodyParser = require('body-parser');
    app.use(bodyParser.json({ limit: '50mb' }));
    app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
    
    重新构建并启动Companion。
  • 若为全局安装的Companion:
    进入Companion安装目录(如你日志中的/usr/local/share/.config/yarn/global/node_modules/@uppy/companion),打开lib/server/express.js,修改body-parser配置添加limit参数,之后重启Companion服务。

2. 反向代理(如Nginx)的请求体大小限制

如果Companion前端有Nginx等反向代理,默认client_max_body_size通常为1MB,会先于Express拦截请求:

  • 打开Nginx配置文件(如/etc/nginx/nginx.conf或站点专属配置),在对应server或location块中添加:
    client_max_body_size 50m;
    
  • 重启Nginx服务:
    sudo systemctl restart nginx
    

3. 验证raw-body的限制传递

错误日志显示问题来自raw-body模块(body-parser的依赖),需确保body-parser的limit参数正确传递给它:

  • 检查Companion中body-parser的调用是否遗漏limit配置,或是否有其他中间件在body-parser之前修改了请求处理逻辑。

4. 确认请求Content-Type

确保/complete请求的Content-Type为application/json,若为其他类型,body-parser.json不会处理,可能触发默认解析限制。可在浏览器开发者工具的Network面板中查看请求头确认。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:26:08