Damit wir hohe Qualität bieten und mit unseren anderen Cloud-Bibliotheken übereinstimmen können, werden in der Dokumentation zu Storage Transfer Service jetzt die Cloud-Clientbibliotheken anstelle der Google API-Clientbibliotheken verwendet. Weitere Informationen zu den beiden Optionen finden Sie in diesem Artikel.
Die Google API-Clientbibliothek erhält weiterhin Updates, wird jedoch nicht mehr in der Dokumentation referenziert.
In diesem Leitfaden werden die wichtigsten Unterschiede bei der Verwendung von Storage Transfer Service beschrieben und Sie erfahren, wie Sie Ihre Clients bei der Migration zur Cloud-Clientbibliothek aktualisieren.
Java
Abhängigkeiten aktualisieren
Für den Wechsel zur neuen Bibliothek 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 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>
Der Code kann größtenteils einfach von der API-Clientbibliothek in die Cloud-Clientbibliothek konvertiert werden. Hier einige wichtige Unterschiede zwischen den beiden Java-Clients:
Client-Instanziierung
Die Cloud-Clientbibliothek reduziert viele Textbausteine, die für die Clientinstanziierung erforderlich sind, indem sie 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 statt Konstruktoren.
API-Clientbibliothek
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Cloud-Clientbibliothek
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Zurückgeben von iterierbaren Vorgängen für Vorgänge
Mit den Vorgängen in der Cloud-Clientbibliothek werden einfache iterierbare Elemente 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 nehmen wir die alten Beispiele für die API-Clientbibliothek im Vergleich zu den entsprechenden Beispielen mit der Cloud-Clientbibliothek auf. 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
An Nearline übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Letzten Übertragungsvorgang prüfen
API-Clientbibliothek
Cloud-Clientbibliothek
Python
Abhängigkeiten aktualisieren
Fügen Sie eine Abhängigkeit von google-cloud-storage-transfer
hinzu, um die neue Bibliothek zu verwenden.
Dieses wird anstelle des Discovery-Clients von google-api-python-client
verwendet.
pip install --upgrade google-cloud-storage-transfer
Client-Instanziierung
Verwende das Modul storage_transfer
anstelle von googleapiclient.discovery
.
API-Clientbibliothek
Cloud-Clientbibliothek
Vergleichsbeispiele
Zur Verdeutlichung der Unterschiede zwischen den beiden Bibliotheken finden Sie unten die alten API-Clientbibliotheken gegenüber den Entsprechungen in der Cloud-Clientbibliothek.
Von Amazon S3 übertragen
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