Лучший способ отображения непубличных изображений в виде рельсов - PullRequest
2 голосов
/ 29 ноября 2011

Я пытаюсь найти лучший способ рендеринга конфиденциальных изображений в виде, не сохраняя изображения в плоской файловой системе приложения rails, так как я понятия не имею, где разместить изображения.Я сохраняю двоичные данные изображения в виде: текст в таблице базы данных sqlite3 и успешно отображаю изображения, используя

<% s = "data:image/png;base64,#{ActiveSupport::Base64.encode64(@my_image)}"%>
<img style = 'width:100%; height:600px' src = '<%= s %>'/>

Это работает для меня в Firefox и Chrome, но мой клиент не может получить изображения для отображения.Через час или два я узнаю, какой браузер они используют.Клиент говорит, что он хочет, чтобы URL src изображения выглядел как относительный путь в папке контроллера, что, кажется, противоречит представлению о том, что изображение не хранится в плоской файловой системе.

Мне кажется, что я что-то упустил оченьЗдесь мало, но я хотел бы знать, как правильно хранить изображения и документы в приложении, доступном не всем пользователям.Если мой вопрос неясен или вам нужна информация, пожалуйста, дайте мне знать, и я предоставлю дополнительную информацию.

Я прочитал attachment_fu и paperclip, но они, как представляется, позволяют загружать вложения, и мне просто нужно отобразитьизображение на странице.Любая помощь очень ценится.Заранее большое спасибо.

Ответы [ 3 ]

3 голосов
/ 29 ноября 2011

Вы можете хранить файлы в непубличных репозиториях и выполнять действия контроллеров с помощью send_file (path, options = {}) Это позволяет хранить файлы где-то на жестком диске и сохранять логику доступа внутри вашего контроллера.

1 голос
/ 29 ноября 2011

Как говорит Артем, Amazon - отличный способ достичь этого. Но если я вас правильно понял, они хотят видеть URL-адрес изображения напрямую (т.е. иметь возможность вводить источник в поле адреса, если они этого хотят).

Вы должны решить, должен ли каждый иметь доступ к изображению (если он знает имя / путь) или иметь аутентификацию, и в этом случае я не думаю, что относительный путь чего-то стоит.

Разве вы не можете просто иметь папку с изображениями, содержащую все изображения (не доступные по URL), и таблицу для поиска, если пользователь X может видеть изображение Y?

1 голос
/ 29 ноября 2011

Вы пробовали камень paperclip? Вы можете загружать изображения в amazon, и amazon позволяет вам устанавливать разрешения для файлов ... если вы хотите сделать это таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...