我有一个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
答案 0 :(得分:2)
使用config.fog_public = false
选项将文件设为私有。并fog_authenticated_url_expiration
(以秒为单位)向每个文件URL添加TTL。有关详细信息,请参阅雾存储模块:https://github.com/carrierwaveuploader/carrierwave/blob/master/lib/carrierwave/storage/fog.rb