Migrazione alla libreria client Cloud di Storage Transfer Service

Per garantire un'alta qualità e coerenza con le altre librerie cloud, la documentazione di Storage Transfer Service ora utilizza le librerie client Cloud anziché le librerie client delle API di Google. Per ulteriori informazioni sulle due opzioni, consulta la sezione Descrizione delle librerie client.

La libreria client delle API di Google continua a ricevere aggiornamenti, ma non viene più citata nella documentazione.

Questa guida illustra le principali differenze relative all'utilizzo di Storage Transfer Service e fornisce istruzioni per l'aggiornamento dei client durante la migrazione alla libreria client Cloud.

Java

Aggiorna le dipendenze

Per passare alla nuova libreria, sostituisci la dipendenza da google-api-services-storagetransfer con google-cloud-storage-transfer.

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

Se usi Gradle senza BOM, aggiungi quanto segue alle dipendenze:

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>

Nella maggior parte dei casi, il codice può essere convertito abbastanza facilmente dalla libreria client API alla libreria client Cloud. Di seguito sono riportate alcune differenze chiave tra i due client Java

Istanziazione del client

La libreria client Cloud riduce gran parte del codice standard associato all'istanza del client gestendolo dietro le quinte.

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

Libreria client cloud

StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

Generatori per le classi di modelli

Le classi modello nella libreria client di Cloud utilizzano builder anziché costruttori.

Libreria client API

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

Libreria client cloud

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

Le operazioni di elenco restituiscono iterabili

Le operazioni di elenco nella libreria client di Cloud restituiscono semplici iterabili anziché i risultati paginati nella libreria client delle API.

Libreria client 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();
  }
}

Libreria client cloud

public class StoragetransferExample {
 public static void main(String args[]) throws Exception {
   StorageTransferServiceClient