プロダクション環境でファイルのアップロードを設定しようとしています。私は現在、Fog-Googleと一緒にCarrierWaveを使用しています。 Fogを開発用に使用しないので、ファイルをローカルに格納する際に問題はありません。しかし、私は現在、プロダクションの機能をアップロードしているファイルをテストしようとしていますが、私のアプリケーションをHerokuにプッシュすることさえできません。Fog-Google、Herokuにプッシュすることができない
ここで、私はHerokuにプッシュしようとしているときに受け取っているエラーのスニペットです。
[fog][WARNING] Unrecognized arguments: google_storage_secret_access_key_id, google_storage_secret_access_key
rake aborted!
ArgumentError: Invalid keyfile or passphrase
ENVシークレットIDとそのすべてを設定するのは比較的新しいものです。だから代わりに、私はちょうど私が知っていることと私はすべてが正しく行われたことを確認するために何をしたのかと言うでしょう。
私は現在、Cloud9 IDEを使用していますように、私の.bashrc
ファイルに私は私の/config/initializers/carrierwave.rb
require 'carrierwave'
CarrierWave.configure do |config|
config.fog_provider = 'fog/google' # required
config.fog_credentials = {
provider: 'Google',
google_storage_access_key_id: ENV['GOOGLE_STORAGE_ACCESS_KEY_ID'],
google_storage_secret_access_key: ENV['GOOGLE_STORAGE_SECRET_ACCESS_KEY']
}
config.fog_directory = ENV['GOOGLE_STORAGE_BUCKET_NAME']
end
で
export GOOGLE_STORAGE_ACCESS_KEY_ID=XXXXX
export GOOGLE_STORAGE_SECRET_ACCESS_KEY=XXXXX
export GOOGLE_STORAGE_BUCKET_NAME=XXXXX
を持っており、私の/config/initializers/fog.rb
GoogleStorage = Fog::Storage.new(
provider: 'Google',
google_project: 'XXXX',
google_client_email: 'XXXXXX',
google_key_location: Rails.root.join('private','google-cloud-service-key.p12'),
google_storage_secret_access_key_id: ENV["GOOGLE_STORAGE_SECRET_ACCESS_KEY_ID"],
google_storage_secret_access_key: ENV["GOOGLE_STORAGE_SECRET_ACCESS_KEY"]
)
のように私を述べました実際にはこれらのすべてに新しいですので、私はベストを尽くしましたFogとCarrierWaveのgithubページの両方のドキュメントに従ってください。
私の知る限り、.bashrc
を使用して秘密鍵などを保存し、ENV['SECRET_KEY_NAME']
メソッドを使用してそれらを呼び出す必要があります。私はCarrierWave.rbとFog.rbの両方のファイルをイニシャライザフォルダに設定していますので、何が欠けているのか分かりません。
さらに、私もheroku config:set GOOGLE_STORAGE_SECRET_ACCESS_KEY_ID=XXXXXX
をやってみましたが、うまくいきませんでした。
私は、これのいずれも生産に取り組んでいるかどうかをはるかに少なく、今何をすべきかは非常にわからないとHerokuのにプッシュしようとすると、エラーを引き起こしている可能性のあるものを。
EDIT:
私はエラーがfog.rb
ファイルから大きくだと思います。だから私は、以下にそれを改正:
GoogleStorage = Fog::Storage::Google.new(
google_project: 'XXX',
google_client_email: 'XXX',
google_json_key_location: '~/.fog/XXXX.json'
)
をそして今、私は私が手にエラーが代わりに
Errno::ENOENT: No such file or directory @ rb_sysopen - /app/.fog/XXX.json
ちょうど共有することであるHerokuのにプッシュしようとしたとき、私は
~
ディレクトリの下
.fog
フォルダを作成しました。
.fog
フォルダ内で私はPrivate JSONキーに追加しました。
すべての助力とアドバイスをいただければ幸いです。ありがとうございました!
'heroku config:set'の後にプッシュしましたか? – Aleksey
@Alekseyはい私は 'heroku config:set'の後に試しました。私はまだ同じエラーを受けています。 – angkiki
'Fog :: Storage'の代わりに' Fog :: Storage :: Google'を試してみてください – Aleksey