因此,我试图获取/流一个文件url,尽管在api配置https://nextjs.org/docs/api-routes/api-middlewares#custom-config中限制大小增加了,但我仍然得到了4mb限制错误。似乎这是一个未解决的问题,github自动关闭它https://github.com/vercel/next.js/issues/33162。
下一版本:^12.2.0
这是一个api路由/api/getFile/[id].ts
,而不是一个无服务器的函数。
import got from 'got'
export const config = {
api: {
responseLimit: '100mb',
bodyParser: {
sizeLimit: '100mb',
},
},
};
const handler = async (req, res) => {
if (req.method.toUpperCase() !== 'GET') return res.status(500).json({});
const content_id = req.query.id;
const file = await myDataBase.getFile(content_id)
const { url, original_filename, original_file_url } = file.meta;
try {
got.stream(original_file_url).pipe(res);
} catch (error) {
return res.status(500).send(null);
}
};
export default handler;
这是当我获取大于4mb的文件时所遇到的错误,这只发生在生产站点(在vercel上),当在开发中获取大型文件时,我没有得到这个错误。
[GET] /api/getContentFile/f3c496a1-94e5-47d8-9630-44a679f2fe0e
02:01:38:93
[ERROR] [1658480502014] LAMBDA_RUNTIME Failed to post handler success response. Http response code: 413.
发布于 2022-10-31 19:30:31
在下一次js之前查看这篇文章
https://nextjs.org/docs/messages/api-routes-response-size-limit
--如果您没有在无服务器环境中使用Next.js,并且了解不使用CDN或专用媒体主机的性能含义,则可以在API路由中将此限制设置为false。export ={ api:{ responseLimit: false,},}> responseLimit也可以获取字节数或字节支持的任何字符串格式,例如1000、‘500 3mb’或'3mb‘。此值将是显示警告之前的最大响应大小。默认值为4MB。导出config ={ api:{ responseLimit:'8mb',} >
https://stackoverflow.com/questions/73077921
复制相似问题