Подтвердить что ты не робот

Настройка среды для использования файловой системы локально и Amazon на Heroku

Я не уверен, как настроить среду таким образом, чтобы Carrier Wave будет использовать локальное хранилище файлов при запуске приложения локально (разработка) и s3 после загрузки на герой (производство)

в хранилище разработки: файл

в хранилище продукции: s3

4b9b3361

Ответ 1

Любая модель, или вы можете установить ее глобально. Взгляните на readme для v0.5.2 (текущий камень) на https://github.com/jnicklas/carrierwave/tree/v0.5.2

Внизу внизу приведены некоторые инструкции по настройке тестовой среды. Используйте тот же подход для использования различных конфигураций для "разработки" и "производства", например. добавьте файл "carrierwave.rb" в "config/initialisers" и добавьте код конфигурации

if Rails.env.test? or Rails.env.cucumber?
  CarrierWave.configure do |config|
    config.storage = :file
    config.enable_processing = false
  end
end

и для разработки

if Rails.env.development?
  CarrierWave.configure do |config|
    config.storage = :file
  end
end

и производство

if Rails.env.production?
  CarrierWave.configure do |config|
    config.storage = :s3
  end
end

Ответ 2

Самый простой способ, который я обычно делаю, - это загрузить Uploader.

class CoverUploader < CarrierWave::Uploader::Base
  # Choose what kind of storage to use for this uploader:
  storage (Rails.env.production? ? :fog : :file)
end

Ответ 3

Я предполагаю, что это задано в модели где-то. Вы могли бы сделать что-то вроде

if Rails.env.production?
  // set production
else
  // set dev / test
end