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.
Transferencia desde Amazon S3
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Transferencia a Nearline
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Verifica la última operación de transferencia
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Python
Actualiza las dependencias
Para usar la biblioteca nueva, agrega 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 cliente de la API
Biblioteca cliente de Cloud
Comparaciones de ejemplo
Para ilustrar las diferencias entre las dos bibliotecas, aquí se muestran las muestras de la biblioteca cliente de la API anterior en paralelo con sus equivalentes en la biblioteca cliente de Cloud.
Transferencia desde Amazon S3
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Transferencia a Nearline
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Ten en cuenta la importación de google.protobuf.duration_pb2.Duration.
Verifica la última operación de transferencia
Biblioteca cliente de la API
Biblioteca cliente de Cloud
Ten en cuenta el uso de storage_transfer.TransferOperation.deserialize.