Um eine hohe Qualität zu gewährleisten und mit unseren anderen Cloud-Bibliotheken übereinzustimmen, wird 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 nicht mehr in der Dokumentation erwähnt.
In dieser Anleitung werden die wichtigsten Unterschiede bei der Verwendung von Storage Transfer Service beschrieben. Außerdem finden Sie hier 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>
Der Code kann größtenteils recht einfach von der API-Clientbibliothek in die Cloud-Clientbibliothek konvertiert werden. Im Folgenden werden einige wichtige Unterschiede zwischen den beiden Java-Clients beschrieben.
Client-Instanziierung
Die Cloud-Clientbibliothek reduziert einen Großteil des Boilerplate-Codes, der mit der Clientinstanziierung verbunden ist, da sie ihn im Hintergrund verarbeitet.
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();
Listenoperationen geben Iterables zurück
Bei List-Vorgängen in der Cloud-Clientbibliothek werden einfache Iterables anstelle der paginierten Ergebnisse in der API-Clientbibliothek zurückgegeben.
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 finden Sie die alten API-Clientbibliotheksbeispiele im Vergleich zu den entsprechenden Beispielen mit der Cloud-Clientbibliothek. Wenn Sie diese Beispiele schon einmal verwendet haben, können Sie anhand dieses Vergleichs nachvollziehen, wie Sie Ihren Code zur neuen Cloud-Clientbibliothek migrieren.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
Auf Nearline ü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 aus google-api-python-client
verwendet.
pip install --upgrade google-cloud-storage-transfer
Client-Instanziierung
Verwenden Sie stattdessen das Modul storage_transfer
.googleapiclient.discovery
API-Clientbibliothek
Cloud-Clientbibliothek
Vergleichsbeispiele
Um die Unterschiede zwischen den beiden Bibliotheken zu veranschaulichen, finden Sie hier die alten API-Clientbeispiele nebeneinander mit ihren Entsprechungen in der Cloud-Clientbibliothek.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
Auf 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
.