因此,我试图获取/流一个文件url,我一直得到4 mb限制错误,尽管增加了api配置www.example.com的限制大小https://nextjs.org/docs/api-routes/api-middlewares#custom-config。
下一个版本:/api/getFile/[id].ts
这是一个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;
这是我得到的错误,当我获取一个文件大于4 mb,这只发生在生产站点(在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.
1条答案
按热度按时间rjee0c151#
查看此帖子by next js
https://nextjs.org/docs/messages/api-routes-response-size-limit
如果您没有在无服务器环境中使用Next.js,并且了解不使用CDN或专用媒体主机的性能影响,则可以在API Route中将此限制设置为false。
responseLimit还可以采用字节数或字节支持的任何字符串格式,例如1000、'500kb'或'3mb'。此值将是显示警告之前的最大响应大小。默认值为4MB。