5

Ich versuche, CarrierWave mit Amazon S3 zu verwenden. Wenn ich versuche, eine Datei durch eine Harke Aufgabe zu, erhalte ich diesen Fehler:CarrierWave Nebel Anmeldeinformationen, Zugriff verweigert

rake aborted! 
Expected(200) <=> Actual(403 Forbidden) 

Mein CarrierWave initializer wie folgt aussieht:

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    provider: 'AWS', 
    aws_access_key_id: MY_AWS_ACCESS_KEY_ID, 
    aws_secret_access_key: MY_AWS_SECRET_ACCESS_KEY 
    } 
    config.fog_directory = MY_BUCKET 
    config.fog_public = true 
end 

ich echte tun habe, hart codierte Schlüssel/secret/Bucket-Werte werden gesetzt, während ich dies debugge.

Der Rake Aufgabe sieht wie folgt aus, und ist erfolgreich, wenn ich den CarrierWave Uploader eingestellt sind vor Ort laden mit storage: file:

Photo.create({ 
    image: File.new('lib/dummy_files/image.jpg') 
}) 

Jede Hilfe sehr geschätzt wird. Vielen Dank!

Antwort

11

Ich erkannte, dass dies mit dem neuen AWS Identity and Access Management (IAM) zu tun hat. Ich hatte einen neuen IAM-Benutzer erstellt, aber diesem Benutzer nicht die richtigen Berechtigungen erteilt. In der Vergangenheit gab es nur einen Benutzer, und dieser Benutzer hatte Administratorrechte. Jetzt müssen Sie einen Benutzer erstellen, diesem Benutzer die richtigen Berechtigungen erteilen und die Anmeldeinformationen dieses Benutzers verwenden. Ich hoffe, das hilft jemandem. Auch

+0

Ja, wenn Sie IAM vorstellen, macht es die Dinge komplizierter (besonders im Vergleich zu den Admin-alles Standard-Anmeldeinformationen). Ich bin froh, dass du das herausgefunden hast. – geemus

+0

Ich hatte das gleiche Problem und suchte überall nach einer Lösung! Danke für die Freigabe – mhz

+0

Vielen Dank dafür. Ich habe mich eine Weile damit herumgeschlagen, und dieser Kommentar hat mich gerettet. – marcamillion

10

Diese Antwort hat mir geholfen ... gesagt, es ist unter IAM> Benutzer> Berechtigungen> Anhängen Benutzerrichtlinien

Wenn Sie zuerst einen Benutzer anlegen es keine ‚Benutzerrichtlinien‘ unter erhält ‚Berechtigungen‘. Sobald ich eine Benutzerrichtlinie anbrachte, funktionierten die Dinge.

+0

Du bist ein wahrer Bruder! Den Tag retten und retten. – noname

+2

Ich weiß, das ist alt, aber deine Antwort hat mich nach stundenlangem Kampf gegen Erlaubnisfehler gerettet. Um noch mehr Details für zukünftige verlorene Seelen zu liefern ... wurde die Richtlinie, die es für mich behob, "AmazonS3FullAccess" genannt. Vielen Dank! – ryanc

Verwandte Themen