如何在Elysia JS | Bun JS中配置最大请求体大小
解决Elysia JS上传大文件时的413 Request Entity Too Large错误
要解决这个问题,需要从Bun服务器全局限制和Elysia的请求体解析配置两个层面入手——因为Elysia基于Bun运行,两者的限制都需要调整:
1. 配置Bun的最大请求体大小
Bun默认的最大请求体大小为1MB,这是触发大文件上传413错误的核心原因之一。你可以通过两种方式修改:
方式一:启动时通过CLI参数设置
在启动项目时添加--max-body-size参数,指定允许的最大请求体大小(支持MB/GB单位):
bun run --max-body-size 2GB index.ts
方式二:在代码中配置Listen选项
在Elysia的listen方法中直接设置maxBodySize参数(单位为字节):
import { Elysia } from 'elysia' new Elysia() // 其他路由/逻辑配置 .listen({ port: 3000, maxBodySize: 2 * 1024 * 1024 * 1024 // 2GB,按需调整 })
2. 配置Elysia的Multipart解析限制
针对文件上传场景,还需要调整Elysia的multipart请求体解析配置,确保单个文件和字段的大小限制符合需求:
import { Elysia } from 'elysia' new Elysia() .config({ bodyParser: { multipart: { maxFileSize: 2 * 1024 * 1024 * 1024, // 单个文件最大2GB maxFields: 5, // 允许的表单字段数量,按需调整 maxFieldsSize: 10 * 1024 * 1024 // 所有非文件字段的总大小限制,按需调整 } } }) // 你的上传路由 .post('/upload', async ({ body }) => { // 处理文件逻辑 return { success: true } }) .listen(3000)
注意事项
- 两个层面的配置都需要设置:Bun的
maxBodySize是全局请求体的总大小限制,Elysia的multipart配置是针对文件上传的细分限制。 - 请根据实际业务需求调整数值,避免设置过大导致服务器资源耗尽。
内容的提问来源于stack exchange,提问作者Himanshu Jangid
相关产品推荐
相关产品推荐

