Per garantire un'alta qualità e coerenza con le altre librerie Cloud, la documentazione di Storage Transfer Service ora utilizza le librerie client Cloud anziché le librerie client delle API di Google. Per ulteriori informazioni sulle due opzioni, consulta la sezione Librerie client.
La libreria client delle API di Google continua a ricevere aggiornamenti, ma non viene più citata nella documentazione.
Questa guida illustra le principali differenze relative all'utilizzo di Storage Transfer Service e fornisce istruzioni per aggiornare i client durante la migrazione alla libreria client Cloud.
Java
Aggiorna le dipendenze
Per passare alla nuova libreria, sostituisci la dipendenza da 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 usi 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>
Nella maggior parte dei casi, il codice può essere convertito abbastanza facilmente dalla libreria client delle API alla libreria client Cloud. Di seguito sono riportate alcune differenze chiave tra i due client Java
Creazione di un'istanza client
La libreria client Cloud riduce gran parte del codice boilerplate associato alla creazione di un'istanza client gestendolo dietro le quinte.
Libreria client delle 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();
Generatori per le classi di modelli
Le classi di modelli nella libreria client Cloud utilizzano i generatori anziché i costruttori.
Libreria client delle 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 Cloud restituiscono semplici iterabili anziché i risultati paginati nella libreria client delle API.
Libreria client delle 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
Di seguito sono riportati i vecchi esempi della libreria client delle API, rispetto agli esempi equivalenti che utilizzano la libreria client Cloud. Se hai utilizzato questi esempi in precedenza, puoi utilizzare questo confronto per capire come spostare il codice nella nuova libreria client Cloud.
Trasferimento da Amazon S3
Libreria client delle API
Libreria client Cloud
Trasferimento a Nearline
Libreria client delle API
Libreria client Cloud
Controlla l'ultima operazione di trasferimento
Libreria client delle API
Libreria client Cloud
Python
Aggiorna le dipendenze
Per utilizzare la nuova libreria, aggiungi una dipendenza da google-cloud-storage-transfer.
Verrà utilizzato al posto del client predittivo 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 delle 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 delle API
Libreria client Cloud
Trasferimento a Nearline
Libreria client delle API
Libreria client Cloud
Tieni presente l'importazione di google.protobuf.duration_pb2.Duration.
Controlla l'ultima operazione di trasferimento
Libreria client delle API
Libreria client Cloud
Tieni presente l'utilizzo di storage_transfer.TransferOperation.deserialize