node.js - 如何在 AWS Elastic Beanstalk 上的 Nodejs 应用程序上启用大文件上传?

标签 node.js amazon-web-services file-upload amazon-elastic-beanstalk large-files

我有一个 Nodejs+Angular 应用程序,我将它部署在 AWS Elastic Beanstalk 上。在我的应用程序中,我有一个图像上传,并且 evrything 正常工作 excpet 对于大文件图像。我对此有一些配置:

  • 在我的后端,我使用 multer 上传图片并将文件限制设置为 10 MB

module.exports = multer({storage: storage, limits: { fileSize: 10 * 1024 * 1024 }}).single('image');

  • 我还有一个名为“01_files.config”的配置文件,我用这段代码部署了应用程序

文件: “/etc/nginx/conf.d/proxy.conf”: 模式:“000755” 拥有者:根 组:根 内容: | client_max_body_size 20M;

一切都在我的本地机器上运行,但是当我部署应用程序时,当我尝试上传最大然后 1MB(multer 的默认大小限制)的图像时,它给我一个“CORS 错误”。

我是 AWS 配置的新手,所以我需要一些帮助。

最佳答案

在“.elasticbeanstalk”目录中创建文件“proxy.config”

files:
    /etc/nginx/conf.d/proxy.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      upstream nodejs {
          server 127.0.0.1:3020;
          keepalive 256;
      }

  server {
      client_max_body_size 1G;
      ...
      ...
      ...
  }
  ...
  ...
  ...

然后像这样使用中间件:

const upload = multer({
  limits: { fileSize: 52428800 }
}).single('image');

关于node.js - 如何在 AWS Elastic Beanstalk 上的 Nodejs 应用程序上启用大文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61573443/

相关文章:

javascript - 是否可以在 Node 中使用模块 "multiparty"上传多个文件?

.net - 上传失败一次,然后正常工作

mysql - 弃用 : `config.adapters.default` Sails. js

node.js - 使用 Passport-local-mongoose 的错误请求

amazon-web-services - ECS 服务上的所有任务都停留在 PROVISIONING 状态

amazon-web-services - AWS CLI使用elasticbeanstalk创建环境创建RDS

java - Apache Commons FileUpload getString() 方法 - Java

javascript - 异步 waterfall/Node.js 未定义 'callback'

node.js - Nodejs - setTimeout 函数无法正常工作

python-3.x - 使用 boto 删除所有桶