2009-09-25 7 views
1

Может ли одна из служб Amazon (их служба данных S3 или иначе) использоваться для разгрузки сервера статических файлов для приложения Ruby on Rails, но все же поддерживает аутентификацию приложения &?Может ли Amazon использоваться для выгрузки сервера статических файлов для приложения Ruby on Rails, но по-прежнему поддерживает аутентификацию и авторизацию приложения?

Это то, что когда пользовательский браузер загрузил исходный HTML для одной страницы приложения Ruby on Rails, когда он вернулся для статического контента (например, изображение или файл CSS), этот запрос будет: (a) направляется непосредственно к службе Amazon (нет циклов RoR, используемых для ее обслуживания, или полосы пропускания), BUT (b) запрос браузера на этот элемент (например, изображение) все равно должен пройти уровень аутентификации/авторизации на основе модель пользователя в Ruby On Rails приложения - другими словами, чтобы обеспечить не только кто-нибудь мог получить изображение ...

благодаря

ответ

3

ответом является вы с с. Вы можете использовать функцию S3, которая позволяет создавать ссылки на защищенные объекты S3, у которых есть небольшое время для жизни, по умолчанию - 5 минут. Это будет работать для любого объекта S3, который загружается как закрытый. Это означает, что браузер будет иметь только X секунд или что угодно, чтобы запросить файл с S3. Пример кода из docs для камня AWS:

S3Object.url_for('beluga_baby.jpg', 'marcel_molina') 

Вы также можете указать expires_in или истечения срока действия опции для каждого файла. Плохо то, что для создания правильных URL-адресов S3 вам понадобится создать помощник для ссылок на стили, изображения и js. Я бы рекомендовал вам установить доменное имя для вашего ведра S3, например «examples3.amazonaws.com», и разместить все стандартные файлы изображений и CSS там как общедоступные. Затем установите это как хост-ресурс в конфигурациях rails. Затем используйте только защищенные ссылки для статических файлов, которые действительно нужны.