NodeJS NextJS提取/流文件url并获取4 mb限制错误

y0u0uwnf  于 2022-11-04  发布在  Node.js
关注(0)|答案(1)|浏览(217)

因此,我试图获取/流一个文件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.
rjee0c15

rjee0c151#

查看此帖子by next js
https://nextjs.org/docs/messages/api-routes-response-size-limit
如果您没有在无服务器环境中使用Next.js,并且了解不使用CDN或专用媒体主机的性能影响,则可以在API Route中将此限制设置为false。

export const config = {
  api: {
    responseLimit: false,
  },
} 

>

responseLimit还可以采用字节数或字节支持的任何字符串格式,例如1000、'500kb'或'3mb'。此值将是显示警告之前的最大响应大小。默认值为4MB。

> 
 export const config = {
  api: {
    responseLimit: '8mb',
  },
} 

>

相关问题