У меня есть веб-приложение с рельсами, сидящее на веб-сервере nginx. У меня есть несколько аудиофайлов на моем сервере, и я хочу, чтобы люди могли их слушать, и иметь возможность искать любую часть аудиофайла для прослушивания с этого момента.Как передать аудиофайл без прямой ссылки
Простое право?
Я использовал прямые ссылки в src моего элемента html5 audio. Он отлично работал. Файл можно играть и искать работу.
Введите защиту и проверяемость.
Мои аудиофайлы чувствительны. Я хочу, чтобы некоторые люди могли их слушать. Мне также нужно знать каждый раз, когда они их слушают. Внезапно общий каталог не будет работать.
Введите файл отправки rails.
Первоначально Send_file оказался именно тем, что мне нужно. Он позволяет рельсам обслуживать мои аудиофайлы, и я могу хранить свои файлы в защищенном каталоге, я мог бы проверять разрешения текущего пользователя, и я мог бы создать соответствующий контрольный журнал. За исключением ...
С send_file я не могу искать. Это разбойник.
Несколько вопросов, связанных с stackoverflow, для получения send_file для обработки запросов диапазона http/range/byte. Те, которые я рассмотрел являются:
what is the proper way to serve mp4 files through rails...
rails media file stream accept byte range request through send file ...
После выполнения дополнительных исследований, я нашел следующее сообщение в блоге: https://blog.echoplex.us/2014/08/19/so-you-want-to-stream-videoaudio-with-rails/
Tl; др не используют рельсы send_file служить СМИ. не пытайтесь сделать это, как, например, вопросы stackoverflow. Вместо этого используйте nginx и X-Accel-Redirect, и в итоге вы получите конвейер запросов, который выглядит как you-> nginx-> rails-> nginx-> you
Я рассматриваю возможность его подхода, но не знаю если бы был лучший способ сделать это.
Какие у меня варианты?
(также, можно предположить, что я использую текущие версии рельсов и Nginx)
Вы решили проблему? – Anatoly
Ну, прошло некоторое время. Я думаю, что мы, возможно, закончили использование S3 для обслуживания аудиофайлов. Таким образом, не было ответа на отличный рельс. Я должен вернуться к коду, чтобы быть уверенным. –