Если вы обслуживаете большие файлы для загрузки, я бы рекомендовал, чтобы веб-сервер обслуживал большие данные. Таким образом, вы не тратите драгоценные ресурсы на запуск своего приложения Rack, чтобы позволить пользователю выполнять длительную загрузку.
Если вы ответили специальным заголовком (для Apache, X-Accel-Redirect
для Nginx), веб-сервер будет использовать содержимое файла, указанного как тело для ответа. Таким образом, ваше приложение Rack станет готовым к следующему запросу, в то время как веб-сервер позаботится о длительном процессе отправки данных пользователю. Возможно, вам потребуется включить эту функцию для своего веб-сервера.
Извините, это на самом деле не решит вашу проблему с Rack :: SendFile, но все же может быть интересным вариантом. – Zargony