Le service de transfert de stockage peut écouter les notifications d'événements dans Google Cloud pour transférer automatiquement les données ajoutées ou mises à jour dans un bucket Cloud Storage. En savoir plus sur les avantages des transferts basés sur des événements
Les transferts basés sur des événements à partir de Cloud Storage utilisent des notifications Pub/Sub pour savoir quand des objets du bucket source ont été modifiés ou ajoutés. Les suppressions d'objets ne sont pas détectées. La suppression d'un objet à la source ne supprime pas l'objet associé dans le bucket de destination.
Configurer les autorisations
Recherchez le nom de l'agent de service service de transfert de stockage de votre projet:
Accédez à la page de référence
googleServiceAccounts.get
.Un panneau interactif s'affiche, intitulé Essayer cette méthode.
Dans le panneau, sous Paramètres de requête, saisissez l'ID de votre projet. Le projet que vous spécifiez ici doit être le projet que vous utilisez pour gérer le service de transfert de stockage, qui peut être différent du projet du bucket source.
Cliquez sur Exécuter.
L'adresse e-mail de votre agent de service est renvoyée en tant que valeur de
accountEmail
. Copiez cette valeur.L'adresse e-mail de l'agent de service utilise le format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.Attribuez le rôle
Pub/Sub Subscriber
à l'agent de service du service de transfert de stockage.Cloud Console
Suivez les instructions de la section Contrôler l'accès via la console Google Cloud pour accorder le rôle
Pub/Sub Subscriber
au service service de transfert de stockage. Le rôle peut être attribué au niveau du sujet, de l'abonnement ou du projet.CLI
gcloud
Suivez les instructions de la section Définir une règle pour ajouter la liaison suivante:
{ "role": "roles/pubsub.subscriber", "members": [ "serviceAccount:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com" }
Configurer Pub/Sub
Assurez-vous de remplir les conditions préalables pour utiliser Pub/Sub avec Cloud Storage.
Configurez la notification Pub/Sub pour Cloud Storage:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Créez un abonnement pull pour le sujet:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_NAME --ack-deadline=300
Créer un job de transfert
Vous pouvez utiliser l'API REST ou la console Google Cloud pour créer un job de transfert basé sur des événements.
N'incluez pas d'informations sensibles telles que des informations permettant d'identifier personnellement l'utilisateur ou des données de sécurité dans le nom de votre tâche de transfert. Les noms de ressources peuvent être propagés aux noms d'autres ressources Google Cloud et peuvent être exposés à des systèmes internes à Google en dehors de votre projet.
Cloud Console
Accédez à la page Créer une tâche de transfert dans la console Google Cloud.
Sélectionnez Cloud Storage comme source et comme destination.
Sélectionnez Event-driven (Déclenché par événement) comme Mode de planification, puis cliquez sur Next step (Étape suivante).
Sélectionnez le bucket source pour ce transfert.
Dans la section Flux d'événements, saisissez le nom de l'abonnement:
projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID
Vous pouvez éventuellement définir des filtres, puis cliquer sur Étape suivante.
Sélectionnez le bucket de destination pour ce transfert.
Vous pouvez également indiquer les heures de début et de fin du transfert. Si vous ne spécifiez pas d'heure, le transfert démarre immédiatement et s'exécute jusqu'à ce qu'il soit arrêté manuellement.
Spécifiez les options de transfert. Pour en savoir plus, consultez la page Créer des transferts.
Cliquez sur Créer.
Une fois créée, la tâche de transfert commence à s'exécuter et un écouteur d'événements attend les notifications sur l'abonnement Pub/Sub. La page d'informations sur la tâche affiche une opération par heure et inclut des informations sur les données transférées pour chaque tâche.
REST
Pour créer un transfert basé sur les événements à l'aide de l'API REST, envoyez l'objet JSON suivant au point de terminaison transferJobs.create:
transfer_job { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec" { "gcsDataSource" { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } "eventStream" { "name": "projects/PROJECT_NAME/subscriptions/SUBSCRIPTION_ID", "eventStreamStartTime": "2022-12-02T01:00:00+00:00", "eventStreamExpirationTime": "2023-01-31T01:00:00+00:00" } }
eventStreamStartTime
et eventStreamExpirationTime
sont facultatifs.
Si l'heure de début est omise, le transfert commence immédiatement. Si l'heure de fin est omise, le transfert se poursuit jusqu'à ce qu'il soit arrêté manuellement.
Bibliothèques clientes
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Go du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Java du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Node.js du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour le service de transfert de stockage, consultez la page Bibliothèques clientes du service de transfert de stockage. Pour en savoir plus, consultez la documentation de référence de l'API Python du service de transfert de stockage.
Pour vous authentifier auprès du service de transfert de stockage, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.