Per garantire alta qualità ed essere coerenti con le altre nostre librerie Cloud, il documentazione di Storage Transfer Service utilizza ora il client Cloud Librerie anziché le librerie client delle API di Google. Per ulteriori informazioni sulle due opzioni, consulta la sezione Descrizione delle librerie client.
La libreria client delle API di Google continua a ricevere aggiornamenti, ma non viene più citata nella documentazione.
Questa guida illustra le differenze principali relative all'utilizzo di Storage Transfer Service e fornisce istruzioni per aggiornare i client durante la migrazione alla libreria client 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 abbastanza facilmente dalla libreria client API alla libreria client Cloud. Di seguito sono riportate alcune differenze fondamentali tra i due client Java
Istanziazione del client
La libreria client di Cloud riduce gran parte del codice boilerplate associato all'inizializzazione del 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();
Costruttori per le classi di modelli
Le classi di modelli nella libreria client di Cloud utilizzano i builder anziché i 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 di elenco nella libreria client di Cloud restituiscono semplici elementi iterabili anziché i risultati paginati 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 sono inclusi gli esempi della vecchia libreria client dell'API, rispetto ai relativi esempi equivalenti che utilizzano la libreria client di 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
Trasferimento a Nearline
Libreria client API
Libreria client Cloud
Controllare l'ultima operazione di trasferimento
Libreria client API
Libreria client Cloud
Python
Aggiornamento delle dipendenze
Per utilizzare la nuova libreria, aggiungi una dipendenza a google-cloud-storage-transfer
.
Verrà utilizzato al posto del client discovery di
google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Creazione di un'istanza client
Utilizza 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 gli esempi di client API precedenti, uno accanto all'altro, con i relativi equivalenti nella libreria client di Cloud.
Trasferimento da Amazon S3
Libreria client API
Libreria client Cloud
Trasferimento a Nearline
Libreria client API
Libreria client Cloud
Tieni presente l'importazione di google.protobuf.duration_pb2.Duration
.
Controllare l'ultima operazione di trasferimento
Libreria client API
Libreria client Cloud
Nota l'utilizzo di storage_transfer.TransferOperation.deserialize