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

如何在Svelte(adapter-vercel)中调整请求体大小限制

解决Svelte Kit + adapter-vercel 请求体大小超限制问题

方法1:通过Vercel配置调整全局限制

Vercel Serverless Functions默认请求体限制为4.5MB,同时Svelte Kit自带512KB的限制。要调整全局限制,在项目根目录创建或修改vercel.json,添加以下配置:

{
  "functions": {
    "src/routes/**/*.{js,ts}": {
      "maxRequestBodySize": "10mb"
    }
  }
}

maxRequestBodySize支持kb/mb/gb单位,可根据需求设置具体数值。

方法2:用Svelte Kit Hooks做精细化控制

如果需要针对特定路由设置不同限制,或自定义错误响应,可通过handle hook实现:

  1. 在src/hooks.server.js(或.ts)中添加代码:
export async function handle({ event, resolve }) {
  // 仅对/api/upload路由放宽限制到10MB
  if (event.url.pathname.startsWith('/api/upload')) {
    event.request = new Request(event.request, {
      size: 10 * 1024 * 1024
    });
  }

  try {
    return await resolve(event);
  } catch (error) {
    // 捕获请求体过大错误,返回自定义提示
    if (error instanceof RangeError && error.message.includes('Request body larger than maxBodySize')) {
      return new Response('请求体大小超出限制', { status: 413 });
    }
    throw error;
  }
}

额外建议

  • Vercel免费层Serverless Functions的最大请求体限制为4.5MB,若需更大限制需升级Pro计划;Edge Functions的最大请求体为1MB,均不适合超大文件上传。
  • 处理大文件上传时,推荐直接使用Vercel Blob的前端上传API,绕开函数的请求体限制,更高效也更合规。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:01:03