首页 > 解决方案 > 在 AWS s3 上使用 Nodejs api 上传文件时请求实体太大

问题描述

我在 stackoverflow 上找到了很多解决方案,但在某些设备中仍然出现错误当我在 node.js api 中的 multipart 上上传超过 2 个图像时,出现此错误“ Request entity too large

我使用AWS elasticbeanstalk服务S3作为后端服务器

已经使用它express.json({limit: '50mb'})但仍然出现该错误,
这是我的代码:

应用程序.js

const app = express()
app.engine('html', require('ejs').renderFile)
app.set('view engine', 'html')

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({
  limit: '50mb', 
  extended: true, 
  parameterLimit: 50000
}));

AwsImageuploader.js

async function uploadFile(filename,filepath){
    const fileStream = fs.createReadStream(filepath);

    const uploadParams = {
        Bucket: "bucker name",
        Body: fileStream,
        Key:filename
    }

    return s3.upload(uploadParams).promise()
}

标签: node.jsamazon-web-servicesapiexpressamazon-s3

解决方案


您可能需要.nginx在 ElasticBeanstalk 上的配置中增加限制,例如:

server {
...
   client_max_body_size 50mb;
....
}

你可以查看这篇文章,里面有更详细的解释。


推荐阅读