4

これはCarrierWaveのバグでしょうか?私はここで同様の質問を読んで、サンプルコードを試して、新しいアプリを再現しました。それは動作しません。CarrierWaveはフォグとS3で動作しません:ArgumentError ... "は認識されたストレージプロバイダではありません"

Githubの例のようなコードで古いアプリを試しましたが、今は動作しません。

全トレース:here Gemfile

source 'https://rubygems.org' 

gem 'rails', '3.2.2' 

gem 'mini_magick', '~> 3.4' 
gem 'carrierwave', '~> 0.5.8' 
gem 'fog' 
gem 'activeadmin', '~> 0.4.3' 
gem 'httparty' 
gem 'dalli' 
gem 'json' 
gem "mercury-rails", :git => "https://github.com/jejacks0n/mercury.git" 
gem 'newrelic_rpm' 

group :assets do 
    gem 'sass-rails', '~> 3.2.4' 
    gem 'coffee-rails', '~> 3.2.2' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem 'jquery_datepicker' 
group :development do 
    gem 'sqlite3' 
end 

group :production do 
    gem 'pg' 
end 

これはcarrierwave構成です:

# config/carrierwave.rb 
# encoding: utf-8 
require 'carrierwave' 

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS',  # required 
    :aws_access_key_id  => 'ACCESS_KEY', # required 
    :aws_secret_access_key => 'SECRET_KEY', # required 
    :region     => 'eu-west-1' # optional, defaults to 'us-east-1' 
    } 
    config.fog_directory = 'lkrails'      # required 
    config.fog_host  = 'https://lkrails.s3-eu-west-1.amazonaws.com' 
    config.fog_public  = true # optional, defaults to true 
    config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {} 

    # Make the tmp dir work on Heroku 
    # config.cache_dir = "#{Rails.root}/tmp/uploads" 
end 

これは、あなたのログファイルによると、霧のバージョンアップローダー

# uploaders/images_uploader.rb 
class ImagesUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 
    storage :fog 

    def store_dir 
     "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
    version :tiny do 
     process :resize_to_limit => [25, 25] 
    end 
    version :thumb do 
     process :resize_to_limit => [50, 50] 
    end 
    version :medium do 
     process :resize_to_limit => [120, 120] 
    end 

    def extension_white_list 
     %w(jpg jpeg gif png) 
    end 

    def filename 
    if original_filename 
     @name ||= Digest::MD5.hexdigest(File.dirname(current_path)) 
     "#{@name}.#{file.extension}" 
    end 
end 

答えて

5

です非常に非常に古いです。 0.3.25を使用しています。最も新しいタグは1.1.2です。これをやってみてください。

bundle update fog 

carrierwaveのバージョンが古くなっても同様であるので、私は同様にbundle update carrierwaveを思います。それはこの問題を解決するのに役立ちます。 ...完全性のため

これを追加

+0

あなたは命を救う人です! –

+0

ありがとう!!!!!!!!!!! – user2950593

0

は、このエラーメッセージが表示されて時間の壁に頭を壊した後、私はcarrierwave初期化子の初めにこのラインを持っていたことが判明:

if Rails.env.test? 
    ... 

したがって、イニシャライザはテスト環境でのみ考慮されていました。それを取り外した後、すべてが期待どおりに機能しました。

+0

複数の質問にコピーと貼り付け([定型句/逐語解答](http://stackoverflow.com/a/10583960/419))には注意が必要です。これらはコミュニティによって「スパム」と表示される傾向があります。あなたがこれをやっているなら、それは通常質問が重複していることを意味します。 – Kev

+0

@Kev申し訳ありません。問題は関連しており、このエラーメッセージの最初の2つのGoogleの結果として表示されますが、質問は重複しません。私はちょうどこのエラーを扱う他の人から時間を節約したいと思っていました。 – alf

関連する問題