私はHerokuで展開しようとしているWebアプリケーションを持っています。 Google Cloud StorageにアクセスするためにGoogle Cloud Node.jsライブラリを使用しています。Heroku Config VarにGoogleクラウドサービスアカウントのコンテンツを設定するキーファイル
const gcs = require('@google-cloud/storage')({
projectId: 'my-project-ID',
credentials: process.env.GCS_KEYFILE
});
GCS_KEYFILEが確認を働いたことを確認するためにダッシュボードをチェックheroku config:set GCS_KEYFILE="$(< /my/file.json)"
を使用して、私はHerokuのコマンドラインツールを使用して設定した設定変数である:私は私のサーバーのファイルの先頭に次きましたJSONファイルの内容はconfig varに設定されています。スクリーンショットは、次のようになります。 は
私はgcs
で何かをしようとすると、私が手にエラーがある:それははっきりしているため意味がありません
Error: Could not authenticate request
The incoming JSON object does not contain a client_email field
を。 json自体は問題ありません。私は、Google Cloudから直接ダウンロードを取り込み、それを変更しませんでした。私はconst gcs
宣言でkeyFileName
を試してみましたが、ENAMETOOLONG
エラー(とにかくJSONファイルへのパスを指定するのにthe docs say thats)があります。 keyFileName
を使用してJSONファイルへのパスを指定するとローカルで動作しますので、JSON自体は問題ではないと確信しています。
なぜこのエラーが発生するのですか?または、HerokuのGoogleからJSON Keyfilesを処理する良い方法がありますか?
うわ、!迅速な返信をありがとう、私はあなたがすぐに私を許可するようにあなたの答えを受け入れるよ。 – quicklikerabbit