gpt4 book ai didi

node.js - 使用 Google 云服务帐户 key 文件中的内容设置 Heroku Config Var

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:55 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,我正尝试使用 Heroku 进行部署。我正在使用 Google Cloud Node.js 库访问谷歌云存储。我的服务器文件顶部有以下内容:

const gcs = require('@google-cloud/storage')({
projectId: 'my-project-ID',
credentials: process.env.GCS_KEYFILE
});

GCS_KEYFILE 是我使用 Heroku 命令行工具使用 heroku config:set GCS_KEYFILE="$(< /my/file.json)" 设置的配置变量

检查仪表板以确保工作正常,确认 JSON 文件的内容已设置为配置变量。屏幕截图如下所示: enter image description here

当我尝试对 gcs 执行任何操作时遇到的错误是:

Error: Could not authenticate request 
The incoming JSON object does not contain a client_email field

这毫无意义,因为它显然有道理。 json 本身很好;我直接从谷歌云下载,没有修改。我试过使用 keyFileName在我的 const gcs声明,但我得到一个 ENAMETOOLONG错误(加上 the docs say 无论如何指定 JSON 文件的路径)。当我使用 keyFileName 时它在本地工作并指定 JSON 文件的路径,所以我很确定 JSON 本身不是问题。

关于我为什么会收到此错误的任何想法?还是有更好的方法来处理 Heroku 上来自 Google 的 JSON key 文件?

最佳答案

heroku 或任何地方的环境变量都是字符串。

如果该 google api 构造函数采用 JSON 对象,您可能需要执行类似这样的操作以将其转换回 JSON:

const gcs = require('@google-cloud/storage')({
projectId: 'my-project-ID',
credentials: JSON.parse(process.env.GCS_KEYFILE)
});

关于node.js - 使用 Google 云服务帐户 key 文件中的内容设置 Heroku Config Var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com