Как сделать файл загруженным на s3 приватным
У меня есть приложение rails, в котором работодатели могут загружать файлы для работы фрилансера. Я использую Amazon S3 для хранения файлов. Проблема в том, что amazon s3 назначает файлу URL, который, если у кого-то есть, может получить доступ к файлу. Работодатели часто загружают личные файлы, которые должен видеть только фрилансер. Как сделать так, чтобы, когда работодатель загружал файл, его мог видеть только фрилансер?
Вот код загрузки файла:
CarrierWave.configure do |config|
config.storage = :fog
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key => ENV['AWS_ACCESS'],
:aws_secret_access => ENV['AWS_SECRET']
}
config.fog_directory = ENV['S_BUCKET']
end
1 ответ
Использовать config.fog_public = false
возможность сделать файлы приватными. А также fog_authenticated_url_expiration
(время в секундах), чтобы добавить TTL к каждому URL файла. См. Модуль хранения тумана для получения дополнительной информации: https://github.com/carrierwaveuploader/carrierwave/blob/master/lib/carrierwave/storage/fog.rb