Настройка расположения содержимого для AWS S3 с помощью Rails?

StackOverflow https://stackoverflow.com/questions/4542148

Вопрос

Я использую Amazon S3 для хранения и обслуживания пользовательского контента для учетных записей пользователей.Мне нужна возможность предоставлять файлы либо встроенным способом (иногда URL-адреса для изображений будут в сообщениях блога и т.д.), либо в виде загрузки.По умолчанию при загрузке файла в мою корзину S3 для файла не задано расположение содержимого (что нормально, потому что он будет встроен в сервер до тех пор, пока браузер распознает файл MIME), однако иногда мне нужно будет установить расположение содержимого в виде вложения, чтобы загрузить файл.

Используя Rails / S3 gem, возможно ли отправить запрос в Amazon, чтобы указать, что файл должен быть отправлен с заданным значением Content-Disposition для вложения (или наоборот) только для этого запроса?Возможно, он мог бы использовать какой-то токен (со ссылкой на токен для запроса, обычно используемый для аутентифицированных чтений ... просто интересно, может ли это помочь мне и в этой ситуации)?Используя драгоценный камень S3, я знаю, как установить и сохранить расположение содержимого для каждого файла, но это привело бы к тому, что файл всегда загружался и его нельзя было бы использовать как встроенное изображение (не тестировалось).

Если не считать наличия двух файлов (по одному с набором Content-Disposition='загрузить' и без него), есть идеи?Заранее благодарю.

PS Я использую rails Rails 2, attachment_fu и драгоценный камень aws-s3 (я не могу их изменить, потому что вышеупомянутое приложение является частью гораздо более крупного, уже запущенного приложения, и я знаю, что между драгоценным камнем aws-s3 и aws_right существуют конфликты)

Это было полезно?

Решение

На всякий случай, если кто-нибудь наткнется на это старое сообщение, API Amazon теперь позволяет изменять расположение содержимого для файлов, хранящихся на S3. Ознакомьтесь с объявлением здесь.

Другие советы

Я полагаю, что расположение содержимого устанавливается при загрузке, поэтому, если вам не нужны две копии файла, каждая со своим собственным расположением содержимого, одним из способов было бы передать его с контроллера, используя send_file http://api.rubyonrails.org/classes/ActionController/Streaming.html#method-i-send_file

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top