使用 Google 存储传输 API 将数据从外部 GCS 传输到我的 GCS

Use Google Storage Transfer API to transfer data from external GCS into my GCS

我正在开发一个由 ReactJs 前端和 Java SpringBoot 后端组成的 Web 应用程序。此应用程序需要用户将数据从他们自己的 Google 云存储上传到我的 Google 云存储。

申请流程如下-

  1. 前端请求用户对其存储进行读取访问。为此,我使用了 oauth 2.0 访问令牌,如 here
  2. 所述
  3. 生成的 Oauth 令牌将传递到后端。
  4. 后端还将拥有我的服务帐户的凭据,以允许它访问我的 Google 云 API。我已经创建了具有所需权限的服务帐户,并使用 here
  5. 中的说明生成了密钥
  6. 后端将使用生成的访问令牌和我的服务帐户凭据来传输数据。

在最后一步中,我想使用 google 存储传输 API 创建一个传输作业。为此,我正在使用 Java API 客户端 here

我无法为传输提供身份验证凭据 api。 据我所知,需要两种不同的身份验证——一种用于读取用户的存储桶,另一种用于启动传输作业并将数据写入我的云存储。我没有为我的用例找到任何相关文档或工作示例。在所有给定的示例中,始终假定相同的服务帐户凭据将有权访问源和接收器存储桶。

tl;博士 Google 存储传输 API 是否允许为 GCS 到 GCS 传输设置不同的源和目标凭据?如果是,如何向传输作业规范提供这些凭据。

感谢任何帮助。谢谢!

不幸的是,GCS 传输不允许这样做 API,如您所提到的,要使其正常工作,需要服务帐户能够访问源和接收器存储桶。

如果您愿意,可以尝试在 Google's Issue Tracker 中提出功能请求,以便 Google 的产品团队可以考虑为 API 的较新版本提供此类功能,你也可以提到这个主题在文档中没有触及,所以它可以改进。