如何将文件上传到s3私有

时间:2014-02-27 01:27:03

标签: ruby-on-rails amazon-web-services ruby-on-rails-4 amazon-s3 carrierwave

我有一个rails应用程序,雇主可以上传文件供自由职业者使用。我正在使用amazon s3来存储文件。问题是亚马逊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 个答案:

答案 0 :(得分:2)

使用config.fog_public = false选项将文件设为私有。并fog_authenticated_url_expiration(以秒为单位)向每个文件URL添加TTL。有关详细信息,请参阅雾存储模块:https://github.com/carrierwaveuploader/carrierwave/blob/master/lib/carrierwave/storage/fog.rb