我正在尝试将Google Cloud Vision API与Node结合使用,并在Heroku上运行该应用程序。非常接近此示例的内容:
https://github.com/googleapis/nodejs-vision
但是,Google API希望通过读取包含服务帐户的文件进行身份验证,并使用环境变量读取文件的位置。有没有办法使用Heroku安全地存储此文件,或者以某种方式利用Heroku Config Vars?
实际上,NodeJS Google Auth库的文档提供了有关如何从环境变量加载凭据的完整示例。具体来说,它说在使用类似Heroku的系统时建议使用此方法,因此我认为您绝对应该对此进行了解。
下载服务帐户的凭据(格式如下)后,可以按照以下步骤使用它们:
使用以下命令加载环境变量 process.env['NAME_OF_YOUR_ENV_VAR'];
将变量解析为JSON JSON.parse(keysVar);
使用GoogleAuth.fromJSON()
方法使用密钥授权请求。
凭证格式:
$ export CREDS='{ "type": "service_account", "project_id": "your-project-id", "private_key_id": "your-private-key-id", "private_key": "your-private-key", "client_email": "your-client-email", "client_id": "your-client-id", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "your-cert-url" }'
您可以在第二个链接中共享的Google Auth文档(或直接在此示例文件中)中找到有关如何使用它们的更详细的示例,请随时根据自己的使用情况对其进行调整,以方便使用。