Heroku worker dyno создает файл, как его прочитать из web dyno?

#heroku #delayed-job

#heroku #отложенное задание

Вопрос:

По запросу администратора мой Heroku worker генерирует отчет, сжатый в виде ZIP-файла размером ~ 10 МБ.

Генерация занимает около одной минуты, поэтому она выполняется delayed_job .
После завершения генерации, где сохранить файл, чтобы веб-dyno мог его обслуживать?

  • tmp Похоже, папка не одинакова от одного dyno к другому.
  • Свободная база данных (5 МБ) недостаточно велика, чтобы содержать файл размером 10 МБ

Нет ли другого варианта, кроме сохранения файла в базе данных и оплаты за переход с базы данных размером 5 МБ на 20 ГБ?

Примечание: существует только один администратор, и генерация отчета является редким событием.

Ответ №1:

Как насчет того, чтобы просто загрузить файл на Amazon S3 и получить к нему доступ оттуда?

Комментарии:

1. Отличная идея! Похоже, Heroku действительно не предназначен для хранения файлов.

2. нет, если вы думаете о Heroku как о файловой системе, доступной только для чтения, то у вас все получится. Хотя некоторые области различных стеков доступны для записи (например, tmp), НИ одна из них не сохраняется на динамических процессорах или перезапускается.