NocoBase 文件上传大小限制怎么改:3 步解锁大文件上传
【免费下载链接】nocobaseNocoBase is an open-source AI + no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase
场景切入:一个 50MB 附件把用户卡住了
业务里常见的崩溃现场:用户拖入一个 50MB 的设计源文件,进度条刚动一下,页面直接甩出 413 错误。别急着怀疑服务器,八成是 NocoBase 文件上传大小限制在后台默默拦了它——NocoBase 的存储规则默认把单文件上限钉在 20MB,超限文件在服务端入口就被拒,根本到不了磁盘。下面这条路径,几分钟就能改对。
一分钟改对默认 20MB 上限
打开管理后台,左侧菜单进入「系统设置 → 文件管理器 → 存储」,能看到安装时自动创建的本地存储引擎,点「编辑」。表单里的「文件大小限制」就是 NocoBase 文件上传大小限制的核心开关:默认 20MB(源码常量FILE_SIZE_LIMIT_DEFAULT = 20 * 1024 * 1024),支持 MB/GB 切换,后台可设到 1GB。填好保存,不用重启服务,下一个上传请求立即生效。同一张表单里还挂着「文件类型」(MIME 白名单)和「路径」「访问 URL 前缀」,建议顺手核对一遍。改之前先想清楚:限制调大,等于把每个上传请求的内存、带宽、磁盘占用都放大了,按业务里真实最大的附件往上加 30% 余量即可,别拍脑袋直接拉满。
三种存储后端各怎么设
- 本地磁盘:文件落在服务器硬盘的相对路径下,上限完全由你在存储规则里填的数字决定,最简单,但扩容和备份都压在这台机器上。
- 阿里云 OSS:引擎通过 OSS 直传把文件写到 Bucket,上限仍填在存储规则里,实际生效值等于「规则限制」和 Bucket、带宽侧余量的较小者,大文件场景记得把 Bucket 容量告警一起设好。
- AWS S3 / 腾讯云 COS:接法与 OSS 一致,规则里填上限即可;另外提醒一句,前面几类内置引擎都不做私有访问鉴权,存合同、证件类敏感文件要换支持临时签名 URL 的 S3 Pro。
底层怎么拆包:分块上传与文件头嗅探
大文件不是整包硬塞的:NocoBase 前端把文件切成小块逐块发送,弱网下某块失败只重传该块,不会推倒重来。与此同时,服务端在写入前会先嗅探文件头约 4100 字节的魔数来识别真实文件类型,再拿去和存储规则里的 MIME 白名单比对——改后缀伪装成图片的脚本文件,在这一步就会被打回。拆包让传输稳,嗅探让类型真,两者叠加才敢把上限调大。
权限与配额别漏配
安全侧有两个容易被忽略的隐藏配置:一是 RBAC,要给对应角色分配文件上传与存储规则的编辑权限,否则业务角色要么传不上去,要么能改全局上限;二是存储侧的"删除记录时保留文件"开关与磁盘/桶容量配额——前者决定删数据时文件去留,后者决定超限后是新上传失败还是老文件难保,上线前各确认一次。
上线前自检清单
- 存储规则的「文件大小限制」已按业务最大附件 + 30% 余量设置
- 反向代理层(如 nginx 的 client_max_body_size)同步调大,不再抢先生成 413
- 「文件类型」MIME 白名单已按业务收紧,且文件头嗅探校验未被绕过
- 云存储 Bucket 的容量告警与生命周期规则已配置
- 测试账号上传权限已验证:有权限能传,无权限被正确拦截
- 用一个接近上限的真实文件完整走了一遍端到端上传
配置入口可参考 文件管理器插件 与 存储引擎文档,细节以官方文档为准。
【免费下载链接】nocobaseNocoBase is an open-source AI + no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考