使用 Firebase 身份验证的 gsutil 并行复合上传

问题描述

我正在开发一个使用 Firebase 身份验证的 Electron 应用。用户上传 500mb+ 的文件。我想使用 gsutil cp 命令来启用并行复合上传。我可以在 gsutil 中使用 Firebase 身份验证令牌吗?我了解到,经过身份验证的用户可以模拟服务帐号,这是否适用于 Firebase?

解决方法

请注意,the gsutil 是一个 Python 应用程序,可让您从命令行访问 Google Cloud Storage。您可以使用 gsutil 执行各种存储分区和对象管理任务,包括:

  • 创建和删除存储桶。
  • 上传、下载和删除对象。
  • 列出存储桶和对象。移动、复制和重命名对象。
  • 编辑对象和存储桶 ACL。

gcloud command-line interface 是用于创建和管理 Google Cloud 资源的主要 ​​CLI 工具。您可以使用此工具从命令行或脚本和其他自动化工具中执行许多常见的平台任务。

在我看来,从 Firebase 控制台生成的令牌并未直接用于 authenticate to Cloud Storage。相反,我认为它是一个 Firebase ID token,因此,您将无法使用 gsutil 生成它。

根据Official Documentation,对于gsutil身份验证,您必须使用following command

  • gcloud auth activate-service-account --key-file KEY_FILE

关于您的另一个问题,Firebase 身份验证客户端 SDK 没有内置的模拟机制。要以特定用户身份登录这些 SDK,您必须知道该用户的凭据。

但是,Firebase Admin SDK's 在与实时数据库的交互中支持模拟用户。由于 Admin SDK 旨在在具有管理权限的受信任环境中运行。

请查看Official Documentation for impersonating a regular user