Um eine hohe Qualität zu gewährleisten und mit unseren anderen Cloud-Bibliotheken übereinzustimmen, werden in der Dokumentation für den Storage Transfer Service jetzt die Cloud-Clientbibliotheken anstelle der Google API-Clientbibliotheken verwendet. Weitere Informationen zu den beiden Optionen finden Sie unter Erläuterung zu Clientbibliotheken.
Die Google API-Clientbibliothek wird weiterhin aktualisiert, wird aber in der Dokumentation nicht mehr erwähnt.
In diesem Leitfaden werden die Hauptunterschiede bei der Verwendung des Storage Transfer Service beschrieben. Außerdem finden Sie eine Anleitung zum Aktualisieren Ihrer Clients bei der Migration zur Cloud-Clientbibliothek.
Java
Abhängigkeiten aktualisieren
Wenn Sie zur neuen Bibliothek wechseln möchten, ersetzen Sie die Abhängigkeit von google-api-services-storagetransfer
durch google-cloud-storage-transfer
.
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-storage-transfer</artifactId> <version>0.2.3</version> </dependency>
Wenn Sie Gradle ohne BOM verwenden, fügen Sie Ihren Abhängigkeiten Folgendes hinzu:
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>
In den meisten Fällen kann Code ziemlich einfach von der API-Clientbibliothek in die Cloud-Clientbibliothek konvertiert werden. Im Folgenden sind einige wichtige Unterschiede zwischen den beiden Java-Clients aufgeführt.
Clientinstanziierung
Die Cloud-Clientbibliothek reduziert den Boilerplate-Code, der mit der Clientinstanzierung verbunden ist, da sie im Hintergrund ausgeführt wird.
API-Clientbibliothek
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();
Cloud-Clientbibliothek
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Ersteller für Modellklassen
Für Modellklassen in der Cloud-Clientbibliothek werden Erbauer anstelle von Konstruktoren verwendet.
API-Clientbibliothek
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Cloud-Clientbibliothek
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Listenvorgänge geben Iterables zurück
Listenvorgänge in der Cloud-Clientbibliothek geben einfache Iterables zurück, anstelle der paginaten Ergebnisse in der API-Clientbibliothek.
API-Clientbibliothek
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();
}
}
Cloud-Clientbibliothek
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);
}
}
}
Vergleichsbeispiele
Hier sehen Sie die Beispiele für die alte API-Clientbibliothek im Vergleich zu den entsprechenden Beispielen mit der Cloud-Clientbibliothek. Wenn Sie diese Beispiele bereits verwendet haben, können Sie anhand dieses Vergleichs nachvollziehen, wie Sie Ihren Code in die neue Cloud-Clientbibliothek verschieben.
Von Amazon S3 übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
In Nearline-Speicher übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Letzten Übertragungsvorgang prüfen
API-Clientbibliothek
Cloud-Clientbibliothek
Python
Abhängigkeiten aktualisieren
Wenn Sie die neue Bibliothek verwenden möchten, fügen Sie eine Abhängigkeit von google-cloud-storage-transfer
hinzu.
Dieser wird anstelle des Discovery-Clients von google-api-python-client
verwendet.
pip install --upgrade google-cloud-storage-transfer
Clientinstanziierung
Verwenden Sie das storage_transfer
-Modul anstelle von googleapiclient.discovery
.
API-Clientbibliothek
Cloud-Clientbibliothek
Vergleichsbeispiele
Zur Veranschaulichung der Unterschiede zwischen den beiden Bibliotheken sind hier die alten API-Clientbeispiele neben den entsprechenden Beispielen in der Cloud-Clientbibliothek zu sehen.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
In Nearline-Speicher übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Notieren Sie sich den Import von google.protobuf.duration_pb2.Duration
.
Letzten Übertragungsvorgang prüfen
API-Clientbibliothek
Cloud-Clientbibliothek
Beachten Sie die Verwendung von storage_transfer.TransferOperation.deserialize
.