Как включить загрузку больших файлов в моем приложении Nodejs на AWS Elastic Beanstalk?

У меня есть приложение Nodejs+Angular, и я развертываю его на AWS Elastic Beanstalk. В моем приложении у меня есть загрузка изображений, и все работает правильно, кроме больших изображений файлов. У меня есть некоторые настройки для этого:

  • На моем сервере я использую multer для загрузки изображений и устанавливаю ограничения на файлы 10 МБ.

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

  • I also have a config file named '01_files.config' that i deploy whit the app whit this code

files: "/etc/nginx/conf.d/proxy.conf" : mode: "000755" owner: root group: root content: | client_max_body_size 20M; <код>

Все работает на моем локальном компьютере, но когда я развертываю приложение, оно выдает «ошибку CORS», когда я пытаюсь загрузить изображение размером более 1 МБ (ограничение размера по умолчанию для multer).

Я новичок в настройке AWS, поэтому мне нужна помощь.


person Juri Lucci    schedule 03.05.2020    source источник


Ответы (1)


Создайте файл proxy.config в каталоге .elasticbeanstalk.

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');
person Gökhan Ayhan    schedule 08.01.2021