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

问题描述:

我需要为我的应用程序使用“Google语音API”。为此,我安装了“Google云端存储SDK”。我跟着这个链接 “https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu”安装gcloud。如何在终端中取消设置/覆盖GOOGLE_APPLICATION_CREDENTIALS环境变量?

然后我在终端上运行这个命令“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?

所以,如果你遵循云语音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 

获得用户凭据,因为它们不依赖于你的项目在本次会议取消它。而是使用从您的项目中获得的服务帐户密钥。