关于node.js:将Google API密钥文件添加到Heroku

Add Google API keyfile to Heroku

我正在尝试在Heroku上托管API,一切都进行得很顺利,但是我无法完成设置,因为Google Cloud Language API SDK需要文件的路径,而不仅仅是文件中的值。<铅>

我已经为正在使用的所有服务成功设置了环境变量。我试图将文件的内容添加到环境变量中:

heroku config:set GOOGLE_KEY_FILE={....}

这不起作用,因为它需要一个文件路径。

提交文件的快捷方式(我显然做不到),如何将文件放入Heroku的文件系统中,以便我的API可以读取它?

或者还有另一种方法可以完成,默认情况下,以下命令在本地运行良好:

1
2
3
4
5
6
7
8
9
10
const initialiseLanguage = require('@google-cloud/language')
const {
  GOOGLE_PROJECT_ID: projectId,
  GOOGLE_KEY_FILE: keyFilename = './side-project-xxxxxxxxx.json'
} = process.env

const language = initialiseLanguage({
  projectId,
  keyFilename
})

预先感谢。


在我的应用程序中也使用GCS密钥文件,并且我还将密钥文件JSON设置为环境变量,所以我要做的是:

1
2
3
4
5
6
7
8
9
10
11
const fs = require('fs');
const path = require('path');
const gTokenPath = path.join(`${__dirname}/gToken.json`);
fs.writeFileSync(gTokenPath , process.env.GCS_JSON_TOKEN);

const gcsKeyFile = JSON.parse(process.env.GCS_JSON_TOKEN);

const language = initialiseLanguage({
  projectId: gcsKeyFile.project_id,
  keyFilename: gTokenPath,
})