Um für hohe Qualität und Einheitlichkeit mit unseren anderen Cloud-Bibliotheken zu sorgen, In der Dokumentation zu Storage Transfer Service wird jetzt der Cloud Client Bibliotheken anstelle der Google API-Clientbibliotheken. Weitere Informationen finden Sie unter Erläuterung zu Clientbibliotheken Informationen zu den beiden Optionen.
Die Google API-Clientbibliothek wird weiterhin aktualisiert, aber nicht mehr auf das in der Dokumentation verwiesen wird.
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
Ersetzen Sie für den Wechsel zur neuen Bibliothek die Abhängigkeit von
google-api-services-storagetransfer
mit 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>
Größtenteils lässt sich Code ziemlich einfach über den API-Client konvertieren Bibliothek für die Cloud-Clientbibliothek. Im Folgenden sind einige wichtige Unterschiede aufgeführt. zwischen den beiden Java-Clients
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 werden die alten API-Clientbibliotheken im Vergleich zu ihren äquivalenten Beispielen für die Verwendung 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.
Von Amazon S3 übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
In 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 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 Verdeutlichung der Unterschiede zwischen den beiden Bibliotheken finden Sie hier die alten API-Clientbibliotheken neben ihren Entsprechungen in der Cloud-Clientbibliothek.
Übertragung von Amazon S3
API-Clientbibliothek
Cloud-Clientbibliothek
In Nearline übertragen
API-Clientbibliothek
Cloud-Clientbibliothek
Notieren Sie sich den Import von google.protobuf.duration_pb2.Duration
.
Letzte Übertragung prüfen
API-Clientbibliothek
Cloud-Clientbibliothek
Beachte die Verwendung von storage_transfer.TransferOperation.deserialize