0

Я размещал свою кодировку на стороне сервера в эластичном бобовом стебле. Я использовал multer для загрузки файлов в папку «upload», это означает, что при использовании api клиент может сохранять изображения или pdf-файлы и т. Д. В этой «загружаемой» папке динамически. Когда я размещал .zip в ebs, некоторые 3 файла хранятся в папке uploads. И после добавления файлов добавляются дополнительные файлы. Теперь, если я изменю свой код и развожу свой код на ebs, создается пустая папка загрузок. Если я загружаю предыдущий код, я получаю только 3 файла, которые есть во время хостинга. Я не могу вернуть файлы, добавленные после размещения кода. Как преодолеть это?Как получить обновленную папку 'uploads' от AWS Elastic BeanStalk?

ответ

0

Первое правило размещения приложения на ElasticBeanstalk заключается в том, что ваш код должен быть без гражданства. Я не имею в виду, что он не должен зависеть от машины, поскольку экземпляры создаются и закрываются в зависимости от требований к масштабированию.

Что я делаю, это все, что вы говорите, загружать его в папку для загрузки, но затем я храню его на S3 (или где-то там, где это безопасно, если экземпляр завершен). Таким образом, в основном папка uploads является лишь временным местоположением.

Контент, который динамически создается, не должен быть частью вашей кодовой базы.

Вы не можете получить данные, которые были потеряны, как при развертывании новой версии каталог, в котором развернут ваш код, удаляется и копируется новая версия. Я считаю его /var/app/current/.

Всякий раз, когда вы хотите иметь дело с загрузки в будущем, вы должны следовать:

  1. Загрузить его на временную директорию в экземпляре,
  2. Загрузить его где-нибудь, где это безопасно (возможно, что-то вроде AWS S3),
  3. Сохраните ссылку на объект в безопасном хранилище (ссылку S3) в базу данных, чтобы вы могли получать закачки, если хотите.