Zur Cloud-Clientbibliothek des Storage Transfer Service migrieren

Um eine hohe Qualität zu gewährleisten und mit unseren anderen Cloud-Bibliotheken übereinzustimmen, wird in der Dokumentation für den Storage Transfer Service jetzt die Cloud-Clientbibliothek anstelle der Google API-Clientbibliothek verwendet. Weitere Informationen zu den beiden Optionen finden Sie unter Erläuterung zu Clientbibliotheken.

Die Google API-Clientbibliothek wird weiterhin aktualisiert, wird aber in der Dokumentation nicht mehr erwähnt.

In dieser Anleitung werden die wichtigsten Unterschiede bei der Verwendung des Storage Transfer Service erläutert und Anweisungen zum Aktualisieren Ihrer Clients bei der Migration zur Cloud-Clientbibliothek gegeben.

Java

Abhängigkeiten aktualisieren

Wenn Sie zur neuen Bibliothek wechseln möchten, ersetzen Sie die Abhängigkeit von google-api-services-storagetransfer durch google-cloud-storage-transfer.

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

Wenn Sie Gradle ohne BOM verwenden, fügen Sie Ihren Abhängigkeiten Folgendes hinzu:

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>

Der Code kann größtenteils ganz einfach von der API-Clientbibliothek in die Cloud-Clientbibliothek konvertiert werden. Im Folgenden sind einige wichtige Unterschiede zwischen den beiden Java-Clients aufgeführt.

Clientinstanziierung

Die Cloud-Clientbibliothek reduziert einen Großteil des Boilerplate-Codes, der mit der Clientinstanziierung verbunden ist, indem sie diese im Hintergrund verarbeitet.

API-Clientbibliothek

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-Clientbibliothek

StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

Builder für Modellklassen

Modellklassen in der Cloud-Clientbibliothek verwenden Builder anstelle von Konstruktoren.

API-Clientbibliothek

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

Cloud-Clientbibliothek

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

Listenvorgänge geben iterierbare Objekte zurück

Listenvorgänge in der Cloud-Clientbibliothek geben einfache iterierbare Objekte anstelle der paginierten Ergebnisse in der API-Clientbibliothek zurück.

API-Clientbibliothek

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