Поскольку в настоящее время я использую маршрутизируемую конечную точку, истекающие URL-адреса, к сожалению, не работают для меня.
Я нашел, что установка заголовка x-amz-acl
для установки разрешений, работает в моем случае с все изображения доступны исключительно через приложение и никогда напрямую.
# config/initializers/dragonfly.rb
app = Dragonfly[:images]
if Rails.env.production?
app.datastore.configure do |c|
# […]
c.storage_headers = {'x-amz-acl' => 'private'}
end
end
Другой способ сделать это программно для некоторых изображений может быть достигнуто с помощью вызова метода put_object_acl
непосредственно на туман инстанса хранения в стрекозы, например, в модели обратного вызова:
app = Dragonfly[:images]
app.datastore.storage.put_object_acl 'bucket-name', model.image_uid, 'private'
Это, конечно, работают только если хранилище используется фактически хранилище тумана, поэтому проверка будет необходима.
У меня нет никаких испытаний для этого решения в настоящее время, так как он, кажется, включает в себя много насмешек. Итак, если у кого-то есть какой-то вклад в это решение, я бы очень хотел услышать об этом!
Hi polarblau - Как вы получаете доступ к этой информации через свое приложение? Является ли ваше приложение веб-страницей? Если да, то какой синтаксис необходим для рендеринга изображений? – Tabrez
Как уже упоминалось, я использую Dragonfly (камень Ruby), в данном случае с Rails. Вот документы: http://markevans.github.com/dragonfly/file.GeneralUsage.html – polarblau
Hi Polarblau - Я задавал вопрос в контексте самой Стрекозы. Вы поделились кодом для обеспечения того, чтобы изображения на S3 были помечены как закрытые. Как получить доступ к этим изображениям из браузера конечного пользователя после их сохранения как «частного»? Используете ли вы код на стороне сервера для получения изображений, а затем записываете их в ответ на http, или используете ли вы что-то более удобное? Будет здорово, если вы сможете поделиться этой информацией. Я просмотрел документацию по стрекозам, и я не вижу ничего подобного. – Tabrez