Zur Gewährleistung einer hohen Qualität und zur Einheitlichkeit mit unseren anderen Cloud-Bibliotheken werden in der Dokumentation für Storage Transfer Service jetzt die Cloud-Clientbibliotheken anstelle der Google API-Clientbibliotheken verwendet. Weitere Informationen zu den beiden Optionen finden Sie unter Erläuterung der Clientbibliotheken.
Die Google API-Clientbibliothek erhält weiterhin Updates, in der Dokumentation wird jedoch nicht mehr darauf verwiesen.
In diesem Leitfaden werden die Hauptunterschiede bei der Verwendung des Storage Transfer Service erläutert. Außerdem finden Sie darin eine Anleitung zum Aktualisieren Ihrer Clients bei der Migration zur Cloud-Clientbibliothek.
Java
Abhängigkeiten aktualisieren
Ersetzen Sie Ihre Abhängigkeit von google-api-services-storagetransfer
durch google-cloud-storage-transfer
, um zur neuen Bibliothek zu wechseln.
<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 den 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>
Code lässt sich größtenteils einfach von der API-Clientbibliothek in die Cloud-Clientbibliothek konvertieren. Im Folgenden sind einige wichtige Unterschiede zwischen den beiden Java-Clients aufgeführt.
Clientinstanziierung
Die Cloud-Clientbibliothek reduziert den mit der Clientinstanziierung verbundenen Standardtext, da sie im Hintergrund verarbeitet 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();
Builder für Modellklassen
Modellklassen in der Cloud-Clientbibliothek verwenden Builder anstelle von Konstruktoren.
API-Clientbibliothek
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Cloud-Clientbibliothek
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Listenvorgänge geben iterierbare Elemente zurück
Listenvorgänge in der Cloud-Clientbibliothek geben einfache iterierbare Elemente anstelle der paginierten Ergebnisse in der API-Clientbibliothek zurück.
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 werden die Beispiele der alten API-Clientbibliothek im Vergleich zu den entsprechenden Beispielen aus der Cloud-Clientbibliothek aufgeführt. Wenn Sie diese Beispiele bereits verwendet haben, können Sie anhand dieses Vergleichs nachvollziehen, wie Sie Ihren Code in die neue Cloud-Clientbibliothek verschieben.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
An Nearline übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Letzten Übertragungsvorgang prüfen
API-Clientbibliothek
Cloud-Clientbibliothek
Python
Abhängigkeiten aktualisieren
Wenn du die neue Bibliothek verwenden möchtest, füge eine Abhängigkeit von google-cloud-storage-transfer
hinzu.
Dieser wird anstelle des Discovery-Clients aus google-api-python-client
verwendet.
pip install --upgrade google-cloud-storage-transfer
Clientinstanziierung
Verwende das Modul storage_transfer
anstelle von googleapiclient.discovery
.
API-Clientbibliothek
Cloud-Clientbibliothek
Vergleichsbeispiele
Zur Verdeutlichung der Unterschiede zwischen den beiden Bibliotheken finden Sie hier die alten API-Clientbibliotheken neben den entsprechenden Versionen in der Cloud-Clientbibliothek.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
An Nearline übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Beachten Sie 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