迁移到 Storage Transfer Service Cloud 客户端库

为了确保高质量并与其他 Cloud 库保持一致,Storage Transfer Service 的文档现在使用 Cloud 客户端库 (而不是 Google API 客户端库 )。如需详细了解这两个选项,请参阅 客户端库说明

Google API 客户端库会继续接收更新,但文档中不再引用该库。

本指南介绍了使用 Storage Transfer Service 时的主要差异,并提供了有关在迁移到 Cloud 客户端库时更新客户端的说明。

Java

更新依赖项

如需切换到新库,请将对 google-api-services-storagetransfer 的依赖项替换为 google-cloud-storage-transfer

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-storage-transfer</artifactId>
    <version>0.2.3</version>
</dependency>

如果您使用的是不带 BOM 的 Gradle,请将此代码添加到您的依赖项中:

implementation 'com.google.cloud:google-cloud-storage-transfer:0.2.3'
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>24.1.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-storage-transfer</artifactId>
  </dependency>

在大多数情况下,代码可以非常轻松地从 API 客户端库转换为 Cloud 客户端库。以下是两个 Java 客户端之间的一些主要区别

客户端实例化

Cloud 客户端库通过在后台处理客户端实例化,减少了许多与客户端实例化相关的样板文件。

API 客户端库

GoogleCredentials credential = GoogleCredentials.getApplicationDefault();
if (credential.createScopedRequired()) {
 credential = credential.createScoped(StoragetransferScopes.all());
}
Storagetransfer storageTransfer = new Storagetransfer.Builder(Utils.getDefaultTransport(),
   Utils.getDefaultJsonFactory(), new HttpCredentialsAdapter(credential))
   .build();

Cloud 客户端库

StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

模型类的构建器

Cloud 客户端库中的模型类使用构建器,而不是构造函数。

API 客户端库

TransferJob transferJob =
   new TransferJob()
       .setStatus("ENABLED");

Cloud 客户端库

TransferJob transferJob =
   TransferJob.newBuilder()
       .setStatus(Status.ENABLED)
   .build();

列表操作返回可迭代对象

Cloud 客户端库中的列表操作返回简单的可迭代对象,而不是 API 客户端库中的分页结果。

API 客户端库

public class StoragetransferExample {
  public static void main(String args[]) throws IOException, GeneralSecurityException {
    Storagetransfer storagetransferService = createStoragetransferService();
    Storagetransfer.TransferJobs.List request = storagetransferService.transferJobs().list();

    ListTransferJobsResponse response;
    do {
      response = request.execute();
      if (response.getTransferJobs() == null) {
        continue;
      }
      for (TransferJob transferJob : response.getTransferJobs()) {
        System.out.println(transferJob);
      }
      request