Версии всех RubyGems.Я использую Ruby on Rails 3.1.3, Ruby 1.9.2, CarrierWave 0.5.8 и Туман 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
У меня есть файл загрузки:
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
У меня есть два файла загрузчика.Я хочу, чтобы для одного было установлено значение private, а для другого - public.
Я пытаюсь перезаписать конфигурации CarrierWave, когда вызывается PageAttachmentUploader, и установить URL для public.Это работает как очарование на локальном компьютере, но не работает на стадии, песочнице и производстве.
Я изменил config.fog_public = true в инициализаторе CarrierWave.Даже это не работает в песочнице.Как мне исправить эту проблему?