Per garantire l'alta qualità e garantire la coerenza con le altre librerie Cloud, la documentazione di Storage Transfer Service utilizza ora le librerie client di Cloud anziché le librerie client delle API di Google. Consulta la pagina Spiegazioni sulle librerie client per ulteriori informazioni sulle due opzioni.
La libreria client dell'API di Google continua a ricevere aggiornamenti, ma non è più menzionata nella documentazione.
Questa guida illustra le principali differenze che si applicano all'utilizzo di Storage Transfer Service e fornisce istruzioni su come aggiornare i client durante la migrazione alla libreria client di Cloud.
Java
Aggiornamento delle dipendenze
Per passare alla nuova libreria, sostituisci la dipendenza su
google-api-services-storagetransfer
con google-cloud-storage-transfer
.
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-storage-transfer</artifactId> <version>0.2.3</version> </dependency>
Se utilizzi Gradle senza BOM, aggiungi quanto segue alle dipendenze:
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>
Per la maggior parte, il codice può essere convertito piuttosto facilmente dalla libreria client API alla libreria client Cloud. Di seguito sono riportate alcune differenze chiave tra i due client Java
Istanza client
La libreria client di Cloud riduce gran parte del boilerplate associato alla creazione di istanze dei client, gestendolo dietro le quinte.
Libreria client 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();
Libreria client Cloud
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Builder per le classi di modelli
Le classi dei modelli nella libreria client Cloud utilizzano gli strumenti di creazione anziché costruttori.
Libreria client API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Libreria client Cloud
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Le operazioni di elenco restituiscono iterabili
Le operazioni degli elenchi nella libreria client Cloud restituiscono iterabili semplici anziché i risultati impaginati nella libreria client dell'API.
Libreria client 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();
}
}
Libreria client 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);
}
}
}
Confronti di esempio
Qui includiamo gli esempi di libreria client API precedenti, confrontati con gli esempi equivalenti che utilizzano la libreria client Cloud. Se hai già utilizzato questi esempi, puoi utilizzare questo confronto per capire come spostare il codice nella nuova libreria client di Cloud.
Trasferimento da Amazon S3
Libreria client API
Libreria client Cloud
Cambio a linea ravvicinata
Libreria client API
Libreria client Cloud
Controlla l'ultima operazione di trasferimento
Libreria client API
Libreria client Cloud
Python
Aggiornamento delle dipendenze
Per utilizzare la nuova libreria, aggiungi una dipendenza su google-cloud-storage-transfer
.
Verrà utilizzato al posto del client predittivo di
google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Istanza client
Usa il modulo storage_transfer
anziché googleapiclient.discovery
.
Libreria client API
Libreria client Cloud
Confronti di esempio
Per illustrare le differenze tra le due librerie, di seguito sono riportati i vecchi esempi di client API, affiancati ai loro equivalenti nella libreria client Cloud.
Trasferimento da Amazon S3
Libreria client API
Libreria client Cloud
Cambio a linea ravvicinata
Libreria client API
Libreria client Cloud
Prendi nota dell'importazione di google.protobuf.duration_pb2.Duration
.
Controlla l'ultima operazione di trasferimento
Libreria client API
Libreria client Cloud
Tieni presente l'utilizzo di storage_transfer.TransferOperation.deserialize