У меня есть вопрос о размещении больших динамически генерируемых активов и Heroku .
Мое приложение будет предлагать массовую загрузку подмножества базовых данных, которое будет состоять из большого файла (> 100 МБ), генерируемого каждые 24 часа. Если бы я работал на сервере, я бы просто записал файл в публичный каталог.
Но, насколько я понимаю, это невозможно с Героку. В каталог / tmp можно записать, но гарантированное время жизни файлов , похоже, определено в виде одного цикла запрос-ответ, а не фонового задания.
Я бы хотел использовать S3 для размещения загружаемого файла. S3 gem поддерживает потоковую загрузку, но только для файлов, которые уже существуют в локальной файловой системе. Похоже, размер контента должен быть известен заранее, что в моем случае будет невозможно.
Так что это похоже на ловушку-22. Я пытаюсь избежать создания гигантской строки в памяти при загрузке в S3, но S3 поддерживает потоковую загрузку только для файлов, которые уже существуют в локальной файловой системе.
Учитывая приложение Rails, в котором я не могу писать в локальную файловую систему, как мне обслуживать большой файл, который генерируется ежедневно, без создания большой строки в памяти?