Node.js使用凭据令牌进行google云存储身份验证
我正在尝试使用凭据令牌通过google云存储进行身份验证。 在node.js GCS api文档中找不到有关如何执行此操作的示例。 他们指示生成并下载包含私钥的json文件,然后链接到文件系统上的路径,如下所示:Node.js使用凭据令牌进行google云存储身份验证,node.js,google-cloud-platform,google-cloud-storage,Node.js,Google Cloud Platform,Google Cloud Storage,我正在尝试使用凭据令牌通过google云存储进行身份验证。 在node.js GCS api文档中找不到有关如何执行此操作的示例。 他们指示生成并下载包含私钥的json文件,然后链接到文件系统上的路径,如下所示: const storage = new Storage({keyFilename: "key.json"}); 这个很好用 但是,我不想将密钥保存为JSON文件,而是创建凭据并将其保存为环境变量,如下所示: const gc = new Storage({
const storage = new Storage({keyFilename: "key.json"});
这个很好用
但是,我不想将密钥保存为JSON文件,而是创建凭据并将其保存为环境变量,如下所示:
const gc = new Storage({
credentials: {
client_email: process.env.CLIENT_EMAIL,
private_key: process.env.SECRET_KEY
}
});
我尝试使用服务帐户HMAC访问密钥从bucket的设置、互操作性菜单获取此令牌
当我尝试使用上面的身份验证方法从bucket上传/删除文件时,我得到以下错误:
错误:错误:0909006C:PEM例程:获取名称:无起始行
谢谢你在这件事上的帮助
如果您使用JSON api(很可能是),这些是您需要进行身份验证的凭据,因此如果您不喜欢将JSON文件的路径放在项目中的.env文件中,您只需获取相关信息即可:
const gc = new Storage({
projectId: process.env.GOOGLE_STORAGE_PROJECT_ID,
scopes: 'https://www.googleapis.com/auth/cloud-platform',
credentials: {
client_email: process.env.GOOGLE_STORAGE_EMAIL,
private_key: process.env.GOOGLE_STORAGE_PRIVATE_KEY
}
})
我仍然不能100%确定如何使用令牌+密码进行身份验证。 我正在接近答案,如果我找到了,我会在将来更新这篇文章。发布一个有用的链接:希望有人能打败我:)