Update после комментариев
Так как вы хотите, чтобы обслуживать файлы локально, просто положить их за пределами/public/folder и вне любого из/активов/папок, и вы должны быть хорошими. Вы можете прочитать больше о государственных и активов папки здесь: Section 2 How to use the Asset Pipeline Скажем:
/private/
Я считаю, Section 11 send_file также используется в SO вопрос, связанный в моем оригинальный ответ ниже по-прежнему путь для вас, чтобы обеспечить доступ к файлы через контроллер, а не статически. Адаптировано из документации:
send_file("#{Rails.root}/private/#{filename}",
:filename => "#{filename}",
:type => "application/pdf", #for example if pdf
:disposition => 'inline') #send inline instead of attachment
Оригинальный ответ для дистанционного обслуживания вместе с send_file ниже
Что касается 1) файлы частного к приложению Вы можете заблокировать эти личные файлы в системе как Amazon S3, который предоставляет авторизованный доступ, поскольку Callmeed объясняет в this SO question. Тогда только ваше приложение сможет разрешить доступ к файлу.
Что касается 2), также доступны для Администраторов
Проблема только с использованием части 1) является то, что она открывает файлы в течение ограниченного периода времени, в течение которого я предполагаю, что они являются общедоступными. Поэтому, если вы хотите обойти это, я думаю, вам нужно принять решение от Павла Швед на самом деле в том же SO-вопросе выше.
В этом решении файлы предоставляются через маршрут/контроллер, который предоставляет двоичные данные файла, а не URL-адрес, указывающий на файл.
Комбинированный раствор
Прочитайте файл из S3 только с приложением, уполномоченным на это доступ (не открывая его публично). Затем передайте данные непосредственно через контроллер, который может разрешить кому угодно.
Предостережения
- Предоставление двоичных данных непосредственно из контроллера, как он хотел убить производительность приложения, если он часто используется, но я никогда не пробовал.
- Если вы можете найти более простой способ сделать часть 1), часть 2) будет по-прежнему работать с этим раствором
вам нужно часть 1) файлы, которые будут использоваться в выходном контентной? – KobeJohn