Para garantizar una alta calidad y ser coherente 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 la Explicación de las bibliotecas cliente para obtener más información sobre las dos opciones.
La biblioteca cliente de la API de Google continúa recibiendo actualizaciones, pero ya no se hace referencia a ella en la documentación.
En esta guía, se describen las principales diferencias que se aplican al uso del Servicio de transferencia de almacenamiento y se proporcionan instrucciones para actualizar tus clientes cuando migres a la biblioteca cliente de Cloud.
Java
Actualiza las dependencias
Para cambiar a la biblioteca nueva, reemplaza tu dependencia en 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, 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 general, el código se puede convertir con bastante facilidad de la biblioteca cliente de la API a la biblioteca cliente de Cloud. Estas son algunas diferencias clave entre los dos clientes de Java
Creación de instancias de clientes
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 administra en segundo plano.
Biblioteca cliente de 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();
Compiladores para clases de modelos
Las clases de modelo en la biblioteca cliente de Cloud usan compiladores en lugar de constructores.
Biblioteca cliente de API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Biblioteca cliente de Cloud
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Las operaciones de enumeración muestran iterables
Las operaciones de enumeración en la biblioteca cliente de Cloud muestran iterables simples en lugar de los resultados paginados en la biblioteca cliente de la API.
Biblioteca cliente de 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 los ejemplos antiguos de la biblioteca cliente de la API en comparación con sus muestras equivalentes que usan la biblioteca cliente de Cloud. Si ya usaste estas muestras, puedes usar esta comparación para comprender cómo mover tu código a la nueva biblioteca cliente de Cloud.
Transfiere desde Amazon S3
Biblioteca cliente de API
Biblioteca cliente de Cloud
Transferir a Nearline
Biblioteca cliente de API
Biblioteca cliente de Cloud
Verifica la última operación de transferencia
Biblioteca cliente de 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
Creación de instancias de clientes
Usa el módulo storage_transfer
en lugar de googleapiclient.discovery
.
Biblioteca cliente de API
Biblioteca cliente de Cloud
Comparaciones de ejemplo
Para ilustrar las diferencias entre las dos bibliotecas, aquí se presentan las antiguas muestras del cliente de la API junto con sus equivalentes en la biblioteca cliente de Cloud.
Transfiere desde Amazon S3
Biblioteca cliente de API
Biblioteca cliente de Cloud
Transferir a Nearline
Biblioteca cliente de API
Biblioteca cliente de Cloud
Observa la importación de google.protobuf.duration_pb2.Duration
.
Verifica la última operación de transferencia
Biblioteca cliente de API
Biblioteca cliente de Cloud
Ten en cuenta el uso de storage_transfer.TransferOperation.deserialize