Bermigrasi ke Library Klien Cloud Storage Transfer Service

Untuk memastikan kualitas tinggi dan konsisten dengan library Cloud lainnya, dokumentasi untuk Storage Transfer Service kini menggunakan Library Klien Cloud dan bukan Library Klien Google API. Lihat Penjelasan library klien untuk mengetahui informasi selengkapnya tentang kedua opsi tersebut.

Library Klien Google API terus menerima update, tetapi tidak lagi direferensikan dalam dokumentasi.

Panduan ini membahas perbedaan utama yang berlaku untuk penggunaan Storage Transfer Service, dan memberikan petunjuk tentang cara memperbarui klien saat bermigrasi ke Library Klien Cloud.

Java

Memperbarui dependensi

Untuk beralih ke library baru, ganti dependensi Anda pada google-api-services-storagetransfer dengan google-cloud-storage-transfer.

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

Jika Anda menggunakan Gradle tanpa BOM, tambahkan kode berikut ini ke dependensi Anda:

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>

Sebagian besar kode dapat dikonversi dengan cukup mudah dari Library Klien API ke Library Klien Cloud. Berikut adalah beberapa perbedaan utama antara kedua klien Java

Instansiasi klien

Library Klien Cloud mengurangi banyak boilerplate yang terkait dengan instansiasi klien dengan menanganinya di balik layar.

Library Klien 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();

Library Klien Cloud

StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

Pembuat untuk class model

Class model di Library Klien Cloud menggunakan pembuat, bukan konstruktor.

Library Klien API

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

Library Klien Cloud

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

Operasi daftar menampilkan iterable

Operasi daftar di Library Klien Cloud menampilkan iterable sederhana, bukan hasil yang di-pagination di Library Klien API.

Library Klien 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.setPageToken(response.getNextPageToken());
    } while (response.getNextPageToken() != null);
  }

  public static Storagetransfer createStoragetransferService()
      throws IOException, GeneralSecurityException {
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();

    GoogleCredential credential = GoogleCredential.getApplicationDefault();
    }

    return new Storagetransfer.Builder(httpTransport, jsonFactory, credential)
        .build();
  }
}

Library Klien Cloud

public class StoragetransferExample {
 public static void main(String args[]) throws Exception {
   StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
   ListTransferJobsRequest request = ListTransferJobsRequest.newBuilder().build();
   for (TransferJob job : client.listTransferJobs(request).iterateAll()) {
     System.out.println(job);
   }
 }
}

Contoh perbandingan

Di sini, kami menyertakan contoh Library Klien API lama, dibandingkan dengan contoh yang setara menggunakan Library Klien Cloud. Jika Anda pernah menggunakan contoh ini, Anda dapat menggunakan perbandingan ini untuk memahami cara memindahkan kode ke Library Klien Cloud yang baru.

Transfer dari Amazon S3

Library Klien API


import com.google.api.client.googleapis.util.Utils