Migrar a la biblioteca de cliente de Cloud de Storage Transfer Service

Para garantizar una alta calidad y mantener la coherencia con nuestras otras bibliotecas de Cloud, en la documentación del servicio de transferencia de Storage ahora se usan las bibliotecas de cliente de Cloud en lugar de las bibliotecas de cliente de las APIs de Google. Consulta Información sobre las bibliotecas de cliente para obtener más información sobre las dos opciones.

La biblioteca de cliente de las APIs de Google sigue recibiendo actualizaciones, pero ya no se hace referencia a ella en la documentación.

En esta guía se explican las principales diferencias en lo que respecta al uso del Servicio de transferencia de Storage y se proporcionan instrucciones para actualizar los clientes al migrar a la biblioteca de cliente de Cloud.

Java

Actualizar dependencias

Para cambiar a la nueva biblioteca, sustituye tu dependencia de google-api-services-storagetransfer por google-cloud-storage-transfer.

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

Si usas Gradle sin BOM, añade lo siguiente a tus dependencias:

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>

En la mayoría de los casos, el código se puede convertir fácilmente de la biblioteca de cliente de la API a la biblioteca de cliente de Cloud. A continuación, se indican algunas de las principales diferencias entre los dos clientes de Java:

Instanciación del cliente

La biblioteca de cliente de Cloud reduce gran parte del código repetitivo asociado a la creación de instancias de clientes, ya que lo gestiona en segundo plano.

Biblioteca de cliente de APIs

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

Biblioteca de cliente de Cloud

StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();

Builders para clases de modelo

Las clases de modelo de la biblioteca de cliente de Cloud usan compiladores en lugar de constructores.

Biblioteca de cliente de APIs

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

Biblioteca de cliente de Cloud

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

Las operaciones de lista devuelven iterables

Las operaciones de lista de la biblioteca de cliente de Cloud devuelven iterables simples en lugar de los resultados paginados de la biblioteca de cliente de la API.

Biblioteca de cliente de APIs

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