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

Kir*_*rna 2 gcloud google-cloud-speech

我需要为我的应用程序使用“Google 语音 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."
Run Code Online (Sandbox Code Playgroud)

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

che*_*rba 5

因此,如果您遵循 Cloud Speech身份验证文档,他们建议您这样做

export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_KEY_FILE
Run Code Online (Sandbox Code Playgroud)

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

echo $GOOGLE_APPLICATION_CREDENTIALS
cat $GOOGLE_APPLICATION_CREDENTIALS
Run Code Online (Sandbox Code Playgroud)

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

export GOOGLE_APPLICATION_CREDENTIALS=
Run Code Online (Sandbox Code Playgroud)

也就是说,您可能不应该使用通过以下方式获得的用户凭据

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

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