如何取消/覆盖终端中的GOOGLE_APPLICATION_CREDENTIALS环境变量?

时间:2017-07-27 11:12:36

标签: gcloud google-cloud-speech

我需要为我的应用程序使用“Google Speech API”。为此,我安装了“Google云端存储SDK”。我按照这个链接 “https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu”安装gcloud。

然后我在终端上运行了此命令“set GOOGLE_APPLICATION_CREDENTIALS /path/to/google-speech-API-key/key.json”以设置GOOGLE_APPLICATION_CREDENTIALS。但是当我尝试测试时,我得到了这个例外 "Error reading credential file from environment variable GOOGLE_APPLICATION_CREDENTIALS, value '/path/to/google-speech-API-key': File does not exist"。我确信该目录存在且它具有所有权限。

然后我运行此命令"gcloud auth application-default login"来实际设置默认密钥。我收到了以下警告

"The environment variable [GOOGLE_APPLICATION_CREDENTIALS] is set to:
  [/path/to/google-speech-API-key]
Credentials will still be generated to the default location:
  [/path/to/.config/gcloud/key.json]
To use these credentials, unset this environment variable before
running your application."

那么,现在我怎么能取消或覆盖GOOGLE_APPLICATION_CREDENTIALS?

2 个答案:

答案 0 :(得分:1)

UNIX:

export GOOGLE_APPLICATION_CREDENTIALS=

enter image description here Windows enter image description here

set GOOGLE_APPLICATION_CREDENTIALS=

有关docs page的更多信息

答案 1 :(得分:0)

因此,如果您按照Cloud Speech authentication documentation建议

export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_KEY_FILE

您可以通过在终端中运行以下命令来检查值以及文件是否可读

echo $GOOGLE_APPLICATION_CREDENTIALS
cat $GOOGLE_APPLICATION_CREDENTIALS

请注意,GOOGLE_APPLICATION_CREDENTIALS是在当前shell会话中设置的环境变量。如果您启动另一个终端会话(不是通过此会话),则不会设置环境变量。您也可以通过

在此会话中取消设置
export GOOGLE_APPLICATION_CREDENTIALS=

那说你可能不应该使用通过

获得的用户凭据
gcloud auth application-default login

因为它们与您的项目无关。而是使用从项目中获得的服务帐户密钥。