Pour garantir une qualité élevée et assurer la cohérence avec nos autres bibliothèques Cloud, la documentation du service de transfert de stockage utilise désormais les bibliothèques clientes Cloud au lieu des bibliothèques clientes des API Google. Pour en savoir plus sur ces deux options, consultez Présentation des bibliothèques clientes.
La bibliothèque cliente des API Google continue d'être mise à jour, mais n'est plus référencée dans la documentation.
Ce guide couvre les principales différences qui s'appliquent à l'utilisation du service de transfert de stockage. Il fournit également des instructions sur la mise à jour de vos clients lors de la migration vers la bibliothèque cliente Cloud.
Java
Mettre à jour les dépendances
Pour passer à la nouvelle bibliothèque, remplacez votre dépendance à google-api-services-storagetransfer
par google-cloud-storage-transfer
.
<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-storage-transfer</artifactId> <version>0.2.3</version> </dependency>
Si vous utilisez Gradle sans BOM, ajoutez ceci à vos dépendances :
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>
Dans la plupart des cas, le code peut être converti assez facilement de la bibliothèque cliente de l'API à la bibliothèque cliente Cloud. Voici quelques différences clés entre les deux clients Java.
Instanciation du client
La bibliothèque cliente Cloud réduit une grande partie du code récurrent associé à l'instanciation du client en le gérant en arrière-plan.
Bibliothèque cliente de l'API
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();
Bibliothèque cliente Cloud
StorageTransferServiceClient storageTransfer = StorageTransferServiceClient.create();
Builders pour les classes de modèles
Les classes de modèle de la bibliothèque cliente Cloud utilisent des builders au lieu de constructeurs.
Bibliothèque cliente de l'API
TransferJob transferJob =
new TransferJob()
.setStatus("ENABLED");
Bibliothèque cliente Cloud
TransferJob transferJob =
TransferJob.newBuilder()
.setStatus(Status.ENABLED)
.build();
Les opérations de liste renvoient des itérables
Les opérations de liste dans la bibliothèque cliente Cloud renvoient des itérables simples au lieu des résultats paginés de la bibliothèque cliente API.
Bibliothèque cliente de l'API
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();
}
}
Bibliothèque cliente Cloud
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);
}
}
}
Exemples de comparaisons
Vous trouverez ici les anciens exemples de bibliothèques clientes d'API, comparés à leurs exemples équivalents utilisant la bibliothèque cliente Cloud. Si vous avez déjà utilisé ces exemples, vous pouvez utiliser cette comparaison pour comprendre comment migrer votre code vers la nouvelle bibliothèque cliente Cloud.
Transférer des données depuis Amazon S3
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Transférer vers Nearline
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Vérifier la dernière opération de transfert
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Python
Mettre à jour les dépendances
Pour utiliser la nouvelle bibliothèque, ajoutez une dépendance à google-cloud-storage-transfer
.
Il sera utilisé à la place du client de découverte de google-api-python-client
.
pip install --upgrade google-cloud-storage-transfer
Instanciation du client
Utilisez le module storage_transfer
au lieu de googleapiclient.discovery
.
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Exemples de comparaisons
Pour illustrer les différences entre les deux bibliothèques, voici les anciens exemples de bibliothèque cliente d'API côte à côte avec leurs équivalents dans la bibliothèque cliente Cloud.
Transférer des données depuis Amazon S3
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Transférer vers Nearline
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Notez l'importation de google.protobuf.duration_pb2.Duration
.
Vérifier la dernière opération de transfert
Bibliothèque cliente de l'API
Bibliothèque cliente Cloud
Notez l'utilisation de storage_transfer.TransferOperation.deserialize
.