Enregistrer des modifications d'objets

Vous trouverez sur cette page la procédure à suivre pour configurer et utiliser les notifications Pub/Sub pour Cloud Storage. Les notifications Pub/Sub vous permettent de suivre les modifications apportées à vos objets Cloud Storage. Pour en savoir plus sur cette fonctionnalité, consultez la page Notifications Pub/Sub pour Cloud Storage.

Prérequis

Avant d'utiliser cette fonctionnalité, vous devez :

  1. activer l'API Pub/Sub pour le projet qui recevra les notifications ;

    Activer l'API

  2. disposer des autorisations suffisantes sur le bucket que vous souhaitez surveiller :

  3. disposer des autorisations suffisantes sur le projet qui recevra les notifications :

    • Si vous êtes propriétaire du projet qui recevra les notifications, vous disposez probablement des autorisations nécessaires.

    • Si vous prévoyez de créer des sujets pour recevoir des notifications, vous devez disposer de l'autorisation pubsub.topics.create.

    • Si vous prévoyez d'utiliser des sujets nouveaux ou existants, vous devez disposer de l'autorisation pubsub.topics.setIamPolicy. Si vous créez un sujet, vous disposez généralement de l'autorisation pubsub.topics.setIamPolicy correspondante.

      Pour savoir comment obtenir ces autorisations Pub/Sub, consultez la section Contrôle des accès Pub/Sub.

  4. disposer d'un sujet Pub/Sub existant auquel vous souhaitez envoyer des notifications ;

  5. Obtenir l'adresse e-mail du compte de service associé au projet contenant votre bucket Cloud Storage.

  6. utiliser l'adresse e-mail obtenue à l'étape précédente pour octroyer au compte de service le rôle IAM pubsub.publisher pour le sujet Pub/Sub souhaité.

Appliquer une configuration de notification

Les étapes suivantes permettent d'ajouter une configuration de notification à votre bucket qui envoie les notifications pour tous les événements compatibles.

gsutil

Exécutez la commande gsutil notification create, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]

Si vous utilisez un [TOPIC_NAME] qui n'existe pas dans votre projet, gsutil le crée pour vous.

Pour envoyer des notifications pour un sous-ensemble d'événements, ajoutez l'option -e.

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string topic_name) {
  StatusOr<gcs::NotificationMetadata> notification =
      client.CreateNotification(bucket_name, topic_name,
                                gcs::payload_format::JsonApiV1(),
                                gcs::NotificationMetadata());

  if (!notification) {
    throw std::runtime_error(notification.status().message());
  }

  std::cout << "Successfully created notification " << notification->id()
            << " for bucket " << bucket_name << "\n";
  if (notification->object_name_prefix().empty()) {
    std::cout << "This notification will be sent for all objects in the"
              << " bucket\n";
  } else {
    std::cout << "This notification will be set sent only for objects"
              << " starting with the prefix "
              << notification->object_name_prefix() << "\n";
  }
  std::cout << "Full details for the notification:\n"
            << *notification << "\n";
}

C#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.

Pour créer une configuration de notification pour un bucket à l'aide de C#, consultez la documentation de référence sur CreateTopic.

Go

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.

Pour créer une configuration de notification pour un bucket à l'aide de Go, consultez la documentation de référence sur le type BucketHandle.

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Actuellement, vous n'avez pas la possibilité de gérer les notifications Pub/Sub avec la bibliothèque cliente Java.

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.

Pour créer une configuration de notification pour un bucket à l'aide de Node.js, consultez la documentation de référence sur l'objet Bucket.

PHP

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.

Pour créer une configuration de notification pour un bucket à l'aide de PHP, consultez la documentation de référence Google\Cloud\Storage\Notification.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.

Pour créer une configuration de notification pour un bucket à l'aide de Python, consultez la documentation de référence sur les buckets.

Ruby

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

Pour créer une configuration de notification pour un bucket à l'aide de Ruby, consultez la documentation de référence Google::Cloud::Storage::Bucket.

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
      "topic": "projects/[PROJECT_ID]/topics/[TOPIC_NAME]",
      "payload_format": "JSON_API_V1"
    }

    Pour envoyer des notifications pour un sous-ensemble d'événements, ajoutez le champ event_types dans le corps de votre requête JSON.

  3. Exécutez la commande cURL pour appeler l'API JSON avec une requête POST notificationConfigs, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"

Répertorier les configurations de notification pour un bucket

Pour répertorier les configurations de notification associées à un bucket particulier :

gsutil

Exécutez la commande gsutil notification list, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

gsutil notification list gs://[BUCKET_NAME]

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string notification_id) {
  StatusOr<gcs::NotificationMetadata> notification =
      client.GetNotification(bucket_name, notification_id);

  if (!notification) {
    throw std::runtime_error(notification.status().message());
  }

  std::cout << "Notification " << notification->id() << " for bucket "
            << bucket_name << "\n";
  if (notification->object_name_prefix().empty()) {
    std::cout << "This notification is sent for all objects in the bucket\n";
  } else {
    std::cout << "This notification is sent only for objects starting with"
              << " the prefix " << notification->object_name_prefix() << "\n";
  }
  std::cout << "Full details for the notification:\n"
            << *notification << "\n";
}

C#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.

Pour répertorier les configurations de notification associées à un bucket à l'aide de C#, consultez la documentation de référence sur la classe StorageClient.

Go

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.

Pour répertorier les configurations de notification associées à un bucket à l'aide de Go, consultez la documentation de référence sur le type BucketHandle.

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Actuellement, vous n'avez pas la possibilité de gérer les notifications Pub/Sub avec la bibliothèque cliente Java.

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.

Pour répertorier les configurations de notification associées à un bucket à l'aide de Node.js, consultez la documentation de référence sur l'objet Bucket.

PHP

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.

Pour répertorier les configurations de notification associées à un bucket à l'aide de PHP, consultez la documentation de référence Google\Cloud\Storage\Bucket.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.

Pour répertorier les configurations de notification associées à un bucket à l'aide de Python, consultez la documentation de référence sur les buckets.

Ruby

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

Pour répertorier les configurations de notification associées à un bucket à l'aide de Ruby, consultez la documentation de référence Google::Cloud::Storage::Bucket.

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez la commande cURL pour appeler l'API JSON avec une requête GET notificationConfigs, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"

Supprimer une configuration de notification

Pour supprimer une configuration de notification existante de votre bucket :

gsutil

Exécutez la commande gsutil notification delete, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

gsutil notification delete projects/_/buckets/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]

L'arrêt des notifications déclenchées par la configuration de notification peut prendre jusqu'à 30 secondes.

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
[](gcs::Client client, std::string bucket_name, std::string notification_id) {
  google::cloud::Status status =
      client.DeleteNotification(bucket_name, notification_id);

  if (!status.ok()) {
    throw std::runtime_error(status.message());
  }

  std::cout << "Successfully deleted notification " << notification_id
            << " on bucket " << bucket_name << "\n";
}

C#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.

Pour supprimer une configuration de notification d'un bucket à l'aide de C#, consultez la documentation de référence sur la classe StorageClient.

Go

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.

Pour supprimer une configuration de notification d'un bucket à l'aide de Go, consultez la documentation de référence sur le type BucketHandle.

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Actuellement, vous n'avez pas la possibilité de gérer les notifications Pub/Sub avec la bibliothèque cliente Java.

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.

Pour supprimer une configuration de notification d'un bucket à l'aide de Node.js, consultez la documentation de référence sur l'objet Notification.

PHP

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.

Pour supprimer une configuration de notification d'un bucket à l'aide de PHP, consultez la documentation de référence Google\Cloud\Storage\Notification.

Python

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.

Pour supprimer une configuration de notification d'un bucket à l'aide de Python, consultez la documentation de référence sur l'objet Notification.

Ruby

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

Pour supprimer une configuration de notification d'un bucket à l'aide de Ruby, consultez la documentation de référence Google::Cloud::Storage::Notification.

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez la commande cURL pour appeler l'API JSON avec une requête DELETE notificationConfigs, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]"

L'arrêt des notifications déclenchées par la configuration de notification peut prendre jusqu'à 30 secondes.

Étapes suivantes