使用凭据 token 的 Node.js 谷歌云存储身份验证

标签 node.js google-cloud-platform google-cloud-storage

我正在尝试使用凭据 token 对谷歌云存储进行身份验证。
在 node.js GCS api 文档中的任何地方都找不到有关如何执行此操作的示例。
他们指示生成并下载一个包含您的私钥的 json 文件,然后链接到它在您的文件系统上的路径,如下所示:

const storage = new Storage({keyFilename: "key.json"});
这工作得很好。
但是我不想将我的 key 保存为 JSON 文件,而是创建凭据并将它们保存为环境变量,如下所示:
const gc = new Storage({
    credentials: {
      client_email: process.env.CLIENT_EMAIL,
      private_key: process.env.SECRET_KEY
    }
});
我尝试使用服务帐户 HMAC 访问 key 从存储桶的设置、互操作性菜单中获取此 token 。
I tried getting this token from the settings of the bucket, from the interoperability menu, using service account HMAC access keys
当我尝试使用上述身份验证方法从存储桶上传/删除文件时,出现以下错误:
错误:错误:0909006C:PEM 例程:get_name:无起始行
感谢您对此事的任何帮助

最佳答案

  • 错误
    错误:错误:0909006C:PEM 例程:get_name:无起始行

  • 实际上是因为我不久前下载了一个 dotenv ohmyzsh 插件而忘记了。很难调试。原来谷歌 key 中有\n 并且 ohmyzsh dotenv 插件未能正确解析它们。所以删除它对我有用。

  • 如果您使用 JSON api(您很可能是)这些是您需要进行身份验证的凭据,因此您可以获取相关信息并将其放入项目中的 .env 文件中,如果您不喜欢放置路径到json文件:
    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% 确定如何使用 token + secret 进行身份验证。
    我正在接近答案,如果我找到它,我会在将来更新这篇文章。发布一个有用的链接:google-auth-library-nodejs希望有人能打败我 :)

    关于使用凭据 token 的 Node.js 谷歌云存储身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62538013/

    相关文章:

    python-3.x - 如何使用 Python 访问存储桶 GCS 的子文件夹中的文件?

    javascript - module.export 和全局对象

    node.js - 使用 ejs 和 express 时出现引用错误

    google-compute-engine - 无法配置 Google Cloud Pub/Sub 推送订阅者

    google-cloud-storage - 如何更新 .boto 文件中的项目 ID

    node.js - 在 Facebook `og:image` 标签中使用 Google Cloud Storage 的公共(public) URL

    node.js - 类型 '{header:Header;}' 的参数不可分配给类型 'RequestOptionsArgs' 的参数

    mysql - 如何在sql中检查当前位置是否在您的服务范围内?

    firebase - 更改 Firebase 实时数据库数据位置

    performance - Google Cloud Functions CPU 速度设置