问题描述: 在使用AWS Lambda和next.js开发的项目中,遇到了无法将2MB文件上传到api路由的问题。下面是代码示例:
// pages/api/upload.js
import multer from 'multer';
const upload = multer({
storage: multer.memoryStorage(),
limits: {
fileSize: 2 * 1024 * 1024, // 2MB
},
});
export default async (req, res) => {
try {
await upload.single('file')(req, res, (err) => {
if (err) {
console.error(err);
res.status(400).json({ error: '文件上传失败' });
} else {
const { file } = req;
// 处理文件上传逻辑
res.status(200).json({ message: '文件上传成功' });
}
});
} catch (error) {
console.error(error);
res.status(500).json({ error: '服务器错误' });
}
};
解决方法: 由于AWS Lambda默认限制5MB的请求体大小,因此需要在Lambda函数的配置中增加请求体大小限制。下面是解决方法的步骤:
完成上述步骤后,再次尝试上传2MB文件到api路由,应该可以成功上传并处理文件。