Будут ли проблемы с доступностью приложения при динамической отдаче больших файлов?

Нужно раздавать большое количество файлов не по прямой ссылке, то есть через контроллер приложения. До и после окончания скачивания, нужно логировать определенную информацию. Может ли возникнуть такая ситуация, когда например в один момент времени идет скачивание n файлов и приложение становиться недоступно, потому что все воркеры заняты? Или я неправильно понимаю принцип работы?

Фреймворк: Ruby on Rails
Сервер: Nginx
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
viktorvsk
@viktorvsk
Правильно понимаете, воркеры будут занят, пока не отдадут контент.
Для таких вещей созданы сервисы типа Amazon S3, Viddler, Google drive, Dropbox и т.д.
Коротко: вы, используя данные своего аккаунта (Api key, access token), генерируете токен для доступа (определенный одноразовый url) для загрузки/отдачи приватного контента

Конечно, это актуально, если контент приватный.
Если у вас в public (для раздачи nginx) лежат файлы и вас устраивает, что скачать их может каждый, а залоггировать - только если скачано с веб-интерфейса и джаваскриптом (очень нестабильное решение) отправлен коллбэк, мол, "скачано" - то проблем с воркерами не будет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Загуглите nginx X-Accel-Redirect. С помощью этой штуки можно проверять доступ в приложении и потом непосредственно отдачу переложить на nginx. Про отслеживание окончания уже сказали.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы