Para garantizar la alta calidad y la coherencia con nuestras otras bibliotecas de Cloud, la documentación del Servicio de transferencia de almacenamiento ahora usa las bibliotecas cliente de Cloud en lugar de las bibliotecas cliente de la API de Google. Consulta Explicación de las bibliotecas cliente para obtener más información sobre las dos opciones.
La biblioteca cliente de la API de Google sigue recibiendo actualizaciones, pero ya no se hace referencia a ella en la documentación.
En esta guía, se abarcan las principales diferencias en lo que respecta al uso del Servicio de transferencia de almacenamiento y se proporcionan instrucciones para actualizar tus clientes cuando migras a la biblioteca cliente de Cloud.
Java
Actualiza las dependencias
Para cambiar a la biblioteca nueva, reemplaza 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 estás usando Gradle sin BoM, agrega 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 su mayor parte, el código se puede convertir con bastante facilidad de la biblioteca cliente de la API a la biblioteca cliente de Cloud. A continuación, se muestran algunas diferencias clave entre los dos clientes de Java.
Instanciación del cliente
La biblioteca cliente de Cloud reduce gran parte del código estándar asociado con la creación de instancias del cliente, ya que lo controla tras bambalinas.
Biblioteca cliente de la 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();
Biblioteca cliente de Cloud
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Generadores para clases de modelos
Las clases de modelos en la biblioteca cliente de Cloud usan generadores en lugar de constructores.
Biblioteca cliente de la API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Biblioteca cliente de Cloud
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Las operaciones de lista muestran elementos iterables
Las operaciones de lista en la biblioteca cliente de Cloud muestran elementos iterables simples en lugar de los resultados paginados en la biblioteca cliente de la API.
Biblioteca cliente de la 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();
}
}
Biblioteca cliente de 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);
}
}
}
Comparaciones de ejemplo
Aquí, incluimos las muestras de la biblioteca cliente de la API anterior, en comparación con sus muestras equivalentes que usan la biblioteca cliente de Cloud. Si usaste estas muestras antes, puedes usar esta comparación para comprender cómo mover tu código a la nueva biblioteca cliente de Cloud.