Per garantire l'alta qualità e garantire la coerenza con le nostre altre librerie Cloud, la documentazione per Storage Transfer Service ora utilizza le librerie client di Cloud anziché le librerie client delle API di Google. Consulta le librerie client per ulteriori informazioni sulle due opzioni.
La libreria client delle API di Google continua a ricevere aggiornamenti, ma non è più presente un riferimento nella documentazione.
Questa guida illustra le differenze principali applicabili all'utilizzo di Storage Transfer Service e fornisce istruzioni sull'aggiornamento dei client durante la migrazione alla libreria client di Cloud.
Java
Aggiornamento delle dipendenze
Per passare alla nuova libreria, sostituisci la tua 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 questo alle tue 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>
Nella maggior parte dei casi, il codice può essere facilmente convertito dalla libreria client delle API alla libreria client di Cloud. Di seguito sono riportate alcune differenze chiave tra i due client Java
Creazione delle istanze dei client
La libreria client di Cloud riduce molto del boilerplate associato all'istanza di 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 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 iterabili anziché i risultati impaginati nella libreria client delle 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 i vecchi esempi di libreria client API, rispetto ai loro campioni equivalenti utilizzando la libreria client di Cloud. Se hai già utilizzato questi esempi, puoi eseguire il confronto per capire come spostare il codice nella nuova libreria client di Cloud.
Trasferisci da Amazon S3
Libreria client API
Libreria client Cloud
Trasferimento a Nearline
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 di rilevamento di
google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Creazione delle istanze dei 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, ecco i vecchi esempi di client API affiancati ai loro equivalenti nella libreria client di Cloud.
Trasferisci da Amazon S3
Libreria client API
Libreria client Cloud
Trasferimento a Nearline
Libreria client API
Libreria client Cloud
Osserva l'importazione di google.protobuf.duration_pb2.Duration
.
Controlla l'ultima operazione di trasferimento
Libreria client API
Libreria client Cloud
Nota l’uso di storage_transfer.TransferOperation.deserialize