Carrierwave / Nebel / S3 "ist nicht eine anerkannte Speicher-Anbieter"
Ich habe eine Rails-app mit Carrierwave für Datei-uploads. Es wurde gut funktioniert, aber beginnen möchte ich mit Amazon S3 für mein Bild-Speicher. Ich bin immer diese Fehlermeldung:
ArgumentError ( is not a recognized storage provider):
app/controllers/salons_controller.rb:52:in `update'
Ich gemacht habe, sicher habe ich die neueste Edelsteine für Carrierwave und Nebel. Dies ist in meinem Gemfile:
gem 'carrierwave'
gem 'aws-sdk'
gem 'fog'
Nebel.rb sieht so aus:
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'}
Ende
Den Uploader-Klasse sieht wie folgt aus:
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
Wenn ich den Speicher wieder auf 'Datei', funktioniert es einwandfrei. Einstellung Speicher zu 'Nebel' erzeugt diesen Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, ich bin ein idiot. 🙂
Irgendwann, ich weiß nicht wo, ich fügte hinzu, ein Nebel.rb-Datei mit meiner CarrierWave Konfiguration in das lib/carrierwave/storage-Verzeichnis. Ich hab verzweifelt, bezahlt für eine Railscasts Abo, damit ich beobachten konnte, episode #383 (http://railscasts.com/episodes/383-uploading-to-amazon-s3?autoplay=true) und bei 3:02 ich hab den Fehler gefunden der meine Wege. Die Carrierwave Konfiguration benötigt werden, platziert in config/Initialisierungen/carrierwave.rb.
Ich weiß nicht, wo ich diese andere Lage, aber sobald ich wieder die config an die richtige Stelle, alles ist gut.
lib/carrierwave/storage/fog.rb
und nicht den Pfad angeben, die Sie zur Verfügung gestellt.Ich lief in das gleiche problem, und die Menschen müssen sich bewusst sein, dass jeder Tippfehler in der config-Datei : "config/Initialisierungen/carrierwave.rb", führt zu diesem Fehler.