我尝试了多种方法来覆盖 API 路由主体大小限制。
https://nextjs.org/docs/messages/api-routes-body-size-limit
export const config = {
api: {
bodyParser: {
sizeLimit: '10mb',
},
},
}
Run Code Online (Sandbox Code Playgroud)
我有一些大小超过 7mb 的数据库响应,并且希望能够支持这么大的响应。我部署到 AWS 而不是 Vercel,并且我没有使用无服务器功能。
为了完成此任务,我缺少什么,这样我就不会exceeds 4MB. This will cause the request to fail in a future version在后端不断收到该错误消息?
Next.js 文档https://nextjs.org/docs/messages/api-routes-response-size-limit
添加功能https://github.com/vercel/next.js/pull/34700
export const config = {
api: {
responseLimit: false,
// responseLimit: '8mb',
},
}
Run Code Online (Sandbox Code Playgroud)
警告! 为了确保功能正常,必须从 API 页面导出配置对象,而不是简单地在 next.config.js 文件中设置为属性。
笔记。如果您不在无服务器环境中使用 Next.js,并且了解不使用 CDN 或专用媒体主机对性能的影响,则可以在 API 路由中将此限制设置为 false。
这不是因为 Vercel / AWS。不幸的是,这是 Next.js 设计的。
来自文档:
为什么会出现这个错误
API 路由旨在快速响应,而不是支持响应大量数据。响应的最大大小为 4 MB。
可能的修复方法
将您的 API 路由响应限制为小于 4 MB。如果您需要支持向客户端发送大文件,则应考虑为这些资产使用专用媒体主机。请参阅下面的链接以获取建议。
因此,即使您进行了其他设置,基本上您仍会受到 4 MB 限制。
您可以尝试使用此技巧来避免 5 MB 的限制。
我的提示是,如果您确实需要支持那么大的响应,也许您可以尝试构建自己的 API。快递是一个不错的选择。您可以对自己的后端架构进行细粒度的控制。
| 归档时间: |
|
| 查看次数: |
14434 次 |
| 最近记录: |