use*_*523 4 ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3 ruby-on-rails-3.1
所有RubyGems的版本.我使用Ruby on Rails 3.1.3,Ruby 1.9.2,CarrierWave 0.5.8和Fog 1.1.2.
我也使用CarrierWave RubyGem进行图像上传,使用Fog RubyGem进行Amazon S3文件上传.
在我的CarrierWave初始化文件中,我有:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: 'xxx',
aws_secret_access_key: 'xxx'
}
if Rails.env.production?
config.fog_directory = 'bucket1'
elsif Rails.env.development?
config.fog_directory = 'bucket2'
else
config.fog_directory = 'bucket3'
end
config.fog_public = false
config.fog_authenticated_url_expiration = 60
end
Run Code Online (Sandbox Code Playgroud)
我有一个上传者文件:
class PageAttachmentUploader < CarrierWave::Uploader::Base
CarrierWave.configure do |config|
if Rails.env.development? || Rails.env.development? || Rails.env.production?
config.fog_public = true
end
end
storage :fog
end
Run Code Online (Sandbox Code Playgroud)
我有两个上传者文件.我想把一个设置为私有,一个设置为公共.
我正在尝试在调用PageAttachmentUploader时覆盖CarrierWave配置并将URL设置为public.这在本地计算机中就像魅力一样,但在登台,沙箱和生产中不起作用.
我在CarrierWave初始化器中更改了config.fog_public = true.即使这在沙盒中也不起作用.我该如何解决这个问题?
Nic*_*nco 23
不,您不应该直接在您的上传者中使用CarrierWave.configure,因为它将更改所有上传者的默认配置,而不仅仅是每个上传者.
我不知道这是否是最佳解决方案,但您可以通过在上传器中设置类方法直接更改默认雾配置,如下所示:
class ImageUploader < CarrierWave::Uploader::Base
storage :fog
def self.fog_public
true # or false
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5249 次 |
| 最近记录: |