qui*_*bit 5 heroku node.js google-cloud-platform
我有一个我正在尝试使用Heroku部署的Web应用程序.我正在使用Google Cloud Node.js库来访问Google云端存储.我的服务器文件顶部有以下内容:
const gcs = require('@google-cloud/storage')({
projectId: 'my-project-ID',
credentials: process.env.GCS_KEYFILE
});
Run Code Online (Sandbox Code Playgroud)
GCS_KEYFILE是我使用Heroku命令行工具设置的配置变量 heroku config:set GCS_KEYFILE="$(< /my/file.json)"
检查仪表板以确保已确认JSON文件的内容已设置为config var.屏幕截图如下所示:

我尝试做任何事情时得到的错误gcs是:
Error: Could not authenticate request
The incoming JSON object does not contain a client_email field
Run Code Online (Sandbox Code Playgroud)
这没有任何意义,因为它显然有效.json本身很好; 我直接从Google Cloud下载了该下载而未对其进行修改.我已经尝试keyFileName在我的const gcs声明中使用但是我收到了一个ENAMETOOLONG错误(加上文档说明了用于指定JSON文件的路径).它在我使用时在本地工作keyFileName并指定JSON文件的路径,所以我很确定JSON本身不是问题.
有关为什么我收到此错误的任何想法?或者是否有更好的方法在Heroku上处理来自Google的JSON Keyfiles?
heroku或任何地方的环境变量都是字符串.
如果谷歌api构造函数采用JSON对象,您可能需要执行类似这样的操作将其转换回JSON:
const gcs = require('@google-cloud/storage')({
projectId: 'my-project-ID',
credentials: JSON.parse(process.env.GCS_KEYFILE)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |