Rails Amazon S3 авторизует личные файлы с использованием предварительно подписанных URL-адресов

У меня следующая проблема,

В моем приложении rails 4 я размещаю изображения/видео на s3. В настоящее время я сделал все файлы общедоступными и, например, изображение, к которому я могу получить доступ, сохранив общедоступную ссылку в базе данных.

Тем не менее, я хочу, чтобы некоторые видеоизображения были частными.

Я посмотрел на предварительно подписанные параметры URL-адреса, используя следующие

s3 =  Aws::S3::Client.new(
        region: AWS_REGION, 
        access_key_id: S3_CONFIG['access_key_id'],
        secret_access_key: S3_CONFIG['secret_access_key']
 )
resource = Aws::S3::Resource.new(client: s3)   
bucket = resource.bucket(BUCKET_NAME)
utilities = bucket.objects(prefix: '/folder').each do |obj|
       obj.presigned_url(:get, expires_in: 3600).to_s
end

Это отлично работает, но как мне использовать предварительно подписанный URL-адрес, поскольку я, очевидно, не могу хранить их в БД, как общедоступные ссылки.

Я использую aws-sdk версии 2.

Мне также интересно, является ли это вообще хорошим решением?

Спасибо за любые подсказки, Жан


person Jean    schedule 15.02.2015    source источник


Ответы (1)


Вот Документ Presigner

Пример:

signer = Aws::S3::Presigner.new
url = signer.presigned_url(:put_object, bucket: "bucket", key: "path")
person Scott Chu    schedule 27.02.2015