2017-01-19 5 views
0

Ich habe eine Rails 5 App auf einem Ubuntu 16.04 Server bereitgestellt. Es gibt jedoch ein Problem mit der Paperclip-Konfiguration.Problem mit Paperclip und Capistrano

Ich benutze den Figaro Edelstein, um meine Umgebungsvariablen zu speichern. Meine Büroklammer Konfiguration sieht wie folgt aus:

config/environments/production.rb 

config.paperclip_defaults = { 
    storage: :s3, 
    bucket: 'anthonycandaele', 
    s3_region: 'eu-west-1', 
    s3_credentials: { 
    access_key_id: ENV.fetch("AWS_ACCESS_KEY_ID"), 
    secret_access_key: ENV.fetch("AWS_SECRET_ACCESS_KEY"), 
    s3_host_name: "s3-eu-west-1.amazonaws.com", 
    } 

}

diese arbeitete in der Entwicklung gut.

Aber wenn ich versuche, meine app zu implementieren, erhalte ich einen Fehler, wenn ich versuche mit Capistrano zu implementieren:

log/capistrano.log 

INFO [3b1c6af3] Running bundle exec rake assets:precompile as [email protected] 
3245 DEBUG [3b1c6af3] Command: cd /opt/www/personalsite/releases/20170119174557 && (export RAILS_ENV="production" ; bundle exec rake assets:precompile) 
3246 DEBUG [3b1c6af3] »·rake aborted! 
3247 DEBUG [3b1c6af3] »·KeyError: key not found: "AWS_ACCESS_KEY_ID" 

Also habe ich versucht, das Problem mit Einstellung der Papierklammer Konfiguration zu beheben:

config.paperclip_defaults = { 
storage: :s3, 
bucket: 'anthonycandaele', 
s3_region: 'eu-west-1', 
s3_credentials: { 
    access_key_id: ENV["AWS_ACCESS_KEY_ID"], 
    secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"], 
    s3_host_name: "s3-eu-west-1.amazonaws.com", 
} 

}

jetzt bin ich in der Lage mit Capistrano zu implementieren, aber wenn ich versuche, eine Datei mit der App zu laden, ich bin ein missingcredentialserror mit AWS bekommen:

Hat jemand Erfahrung mit der Verwendung von Paperclip und Speichern der Umgebungsvariablen mit Figaro?

Danke für Ihre Hilfe,

Anthony

+0

ist meine Vermutung, dass die Geheimnisse tatsächlich nicht in der Menge Umgebung bei der Bereitstellung. Könnten Sie versuchen, 'puts ENV [" AWS_SECRET_ACCESS_KEY "]' zu Ihrer production.rb hinzuzufügen, um zu sehen, ob etwas verloren geht? –

+0

Sie haben Recht, ich lege den AWS_SECRET_ACCESS_KEY auf den Entwicklungsserver und ich habe den Wert zurück. Aber wenn ich den AWS_SECRET_ACCESS_KEY auf den Produktionsserver setze, bekomme ich keinen Wert zurück. Wie kann ich das lösen? – Toontje

Antwort

0

konnte ich das Problem beheben, indem ein Fernconfig Einstellung/application.yml Datei