Как сделать файл загруженным на 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

Другие вопросы по тегам