我已经创建了一个部署在heroku上的Spring Boot 应用程序。一切都很好。现在,我正在尝试使用谷歌云上的文本到语音API。这在本地工作正常,但当我想在heroku
上使用它时,我得到了警告。
从环境变量GOOGLE_APPLICATION_CREDENTIALS(值为“config/keyFile.json”)中阅读凭据文件时出错:文件不存在。
我在《英雄传》中已经设定了以下内容:
heroku config:set GOOGLE_APPLICATION_CREDENTIALS=‘config/keyFile.json’
不管我把文件放在哪里。。我都不能让它工作。谁能帮忙?
2条答案
按热度按时间sulc1iza1#
我通过使用GOOGLE_APPLICATION_CREDENTIALS json文件的内容设置一个heroku配置变量(比如GOOGLE_APPLICATION_CREDENTIALS)并调用需要示例化客户端的
process.env.GOOGLE_APPLICATION_CREDENTIALS
来实现这一点。在任何情况下,将密钥文件保存到远程服务器(如heroku)都不是最佳做法,使用环境变量调用密钥更安全。
n7taea2i2#
我在vercel中遇到了类似的问题,它无法找到serviceaccount.json。最后,我通过将credenial作为对象直接传递给TextToSpeechClient构造函数,使其正常工作。只需记住对敏感属性使用环境变量。
您可以在此处查看Google文档:https://cloud.google.com/nodejs/docs/reference/text-to-speech/latest/text-to-speech/v1.texttospeechclient
文档并不清楚ClientOptions对象应该是什么样子的。我只是猜测了一下credentials {credentials:{}}部分,它就起作用了。
希望这能帮助那些需要将什么部署到云并且正在努力获得通往serviceaccount.json的正确路径的人