with tutorial rails aws ruby-on-rails amazon-s3 carrierwave

ruby on rails - tutorial - Carrierwave/Fog/S3 "no es un proveedor de almacenamiento reconocido"



file upload with carrierwave (2)

Tengo una aplicación de Rails que usa Carrierwave para cargas de archivos. Ha funcionado bien, pero quiero comenzar a usar Amazon S3 para el almacenamiento de mi imagen. Estoy recibiendo este error:

ArgumentError ( is not a recognized storage provider): app/controllers/salons_controller.rb:52:in `update''

Me he asegurado de tener las últimas gemas para Carrierwave y Fog. Esto está en mi Gemfile:

gem ''carrierwave'' gem ''aws-sdk'' gem ''fog''

fog.rb se ve así:

CarrierWave.configure do |config| config.fog_credentials = { :provider => ''AWS'', :aws_access_key_id => ''MYACCESSKEY'', :aws_secret_access_key => ''MYSECRETKACCESSKEY'', :region => ''us-east-1'' } config.fog_directory = ''andrunix'' config.fog_public = true config.fog_attributes = {''Cache-Control''=>''max-age=315576000''}

fin

La clase Uploader se ve así:

class SalonImageUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick storage :fog def store_dir # "andrunix" is the bucket name on S3 "andrunix/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end end

Si cambio el almacenamiento a ''archivo'', funciona bien. Establecer el almacenamiento en ''niebla'' genera este error.


OK, soy un idiota :)

En algún momento, no sé dónde, agregué un archivo fog.rb con mi configuración de CarrierWave al directorio lib / carrierwave / storage. Me desespere, pagué una suscripción a Railscasts para poder ver el episodio # 383 ( http://railscasts.com/episodes/383-uploading-to-amazon-s3?autoplay=true ) y a las 3:02 encontré el error de mis maneras. La configuración de Carrierwave debe colocarse en config / initializers / carrierwave.rb.

No sé de dónde saqué esta otra ubicación, pero una vez que moví la configuración a la ubicación correcta, todo está bien.


Me encontré con el mismo problema, y ​​la gente debe saber que cualquier error tipográfico en el archivo de configuración: "config / initializers / carrierwave.rb", conduce a ese error.