Carrierwave / Fog - ошибка аргумента, поставщик не распознан - PullRequest
4 голосов
/ 01 апреля 2011

Я использую Carrierwave 0.5.3 и Fog для загрузки изображений в Amazon-S3.

Настройка работает плавно при локальном запуске, без ошибок.

Но при работе на Heroku,загрузка завершается с этим сообщением:

2011-03-31T12:53:46-07:00 app[web.1]: ArgumentError ( is not a recognized storage provider):
2011-03-31T12:53:46-07:00 app[web.1]:   app/controllers/useditems_controller.rb:36:in `create'

У меня есть инициализатор:

# /config/initializers/fog.rb
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => 'secret',
    :aws_secret_access_key  => 'also secret',
    :region                 => 'eu-west-1'
  }
  config.fog_directory  = 'jabberwocky'
end

И загрузчик:

# /app/uploaders/image_uploader.rb
# encoding: utf-8

class ImageUploader < CarrierWave::Uploader::Base

  # Include RMagick or ImageScience support:
  include CarrierWave::RMagick

  # Choose what kind of storage to use for this uploader:
  storage :fog

  # Override the directory where uploaded files will be stored.
  # This is a sensible default for uploaders that are meant to be mounted:
  def store_dir
    "useditems"
  end

  def cache_dir
    "#{Rails.root}/tmp/uploads"
  end

  # Create different versions of your uploaded files:
  version :thumb do
     process :resize_to_limit => [220, 2000]
  end

  # Add a white list of extensions which are allowed to be uploaded.
  # For images you might use something like this:
  def extension_white_list
    %w(jpg jpeg gif png)
  end

end

Я отследил ошибкусообщение для Fog, и кажется, что Fog под Heroku не получает информацию о конфигурации от инициализатора.:provider как-то пусто.Но я озадачен тем, как это исправить.

Любая помощь будет высоко ценится.

Я использую:

rails 3.0.4
heroku 1.19.1
fog 0.7.1
ruby 1.9.2 under rvm

Ответы [ 2 ]

2 голосов
/ 14 мая 2012

Добавление этого для полноты ...

После того, как я часами разбил голову об стену этим сообщением об ошибке, я обнаружил, что у меня была эта строка в начале инициализатора несущей волны:1004 *

Таким образом, инициализатор рассматривался только в тестовой среде.После удаления все заработало как положено.

2 голосов
/ 02 апреля 2011

Ошибка была связана с тем, что я по ошибке добавил инициализатор в файл .gitignore.Таким образом, он никогда не был загружен в Heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...