2017-01-19 21 views
0

私はUbuntu 16.04サーバーにRails 5アプリケーションを配備しました。ただし、Paperclipの設定に問題があります。Issue with Paperclip and Capistrano

フィガロの宝石を使って自分の環境変数を保存しています。マイクリップの構成は次のようになります。

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", 
    } 

}

が、これは開発にうまく働きました。

しかし、私は私のアプリを展開しようとすると、私はカピストラーノを展開しようとすると、私は失敗を取得:

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" 

は、だから私は、ペーパークリップの設定を調整することで問題を解決しようとした:

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", 
} 

}

今、私はカピストラーノで展開することができるよ、私はアプリでファイルをアップロードしようとすると、私はAWSとmissingcredentialserrorを取得しています:

Aws::Errors::MissingCredentialsError (unable to sign request without credentials set): 

誰かがPaperclipを使用してフィガロと環境変数を保存した経験がありますか?あなたの助けのための

おかげで、

アンソニー

+0

リモート設定/ application.ymlファイルを設定することで問題を解決することができました環境を展開します。 production.rbにputs ENV ["AWS_SECRET_ACCESS_KEY"] 'を追加して、何かがダンプアウトされるのを見てみることができますか? –

+0

あなたは正しいです、私は開発サーバーにAWS_SECRET_ACCESS_KEYを置き、私は価値を戻しました。しかし、私がAWS_SECRET_ACCESS_KEYを本番サーバーに置くと、私は値を返しません。これをどうすれば解決できますか? – Toontje

答えて

0

は、私は私の推測では、秘密が実際に設定されていないことである