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 la API 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 cliente, 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 de 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.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 de 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 antiguas muestras de la biblioteca de cliente de la API, en comparación con sus equivalentes que usan la biblioteca de cliente de Cloud. Si has usado estas muestras antes, puedes usar esta comparación para saber cómo migrar tu código a la nueva biblioteca de cliente de Cloud.
Transferir desde Amazon S3
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Transferir a Nearline
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Consultar la última operación de transferencia
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Python
Actualizar dependencias
Para usar la nueva biblioteca, añade una dependencia en google-cloud-storage-transfer
.
Se usará en lugar del cliente de descubrimiento de google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Instanciación del cliente
Usa el módulo storage_transfer
en lugar de googleapiclient.discovery
.
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Comparaciones de ejemplo
Para ilustrar las diferencias entre las dos bibliotecas, aquí tienes las antiguas muestras de la API Client junto con sus equivalentes en la biblioteca de cliente de Cloud.
Transferir desde Amazon S3
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Transferir a Nearline
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Fíjate en la importación de google.protobuf.duration_pb2.Duration
.
Consultar la última operación de transferencia
Biblioteca de cliente de APIs
Biblioteca de cliente de Cloud
Fíjate en el uso de storage_transfer.TransferOperation.deserialize