我已将 GOOGLE_APPLICATION_CREDENTIALS 设置为 ~/mailcreds.json,如下所示
export GOOGLE_APPLICATION_CREDENTIALS="~/mailcreds.json"
但是,每当我运行需要请求它们的 DialogFlow 项目时,我都会得到这个
{
"timestamp": "2020-04-04T19:50:12.350+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Error reading credential file from environment variable GOOGLE_APPLICATION_CREDENTIALS, value '~/mailcreds.json': File does not exist."}
我对此很困惑!该文件位于我的主目录中!
最佳答案
当您执行诸如 cat ~/mailcreds.json
之类的操作时,波浪号 ~
由 shell 处理并转换为环境变量 $ 中的值主页
。然而,并非所有运行时环境都能正确处理此问题。
最好的选择是将其更改为类似的内容
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"
这是有效的,因为 shell 会立即解释 $HOME
,因此 GOOGLE_APPLICATION_CREDENTIALS
将被设置为文件的完整路径。
但是,更好的是实际上直接设置文件的完整路径。
确保您还使用有权访问该文件的帐户运行项目。如果您自己运行该项目(因为您正在开发/测试它),那么您暂时应该没问题,但这对于生产中的某些东西来说是不好的做法。
关于google-cloud-platform - 未找到 GOOGLE_APPLICATION_CREDENTIALS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61033948/