注册对象更改

本页面介绍如何设置和使用 Cloud Pub/Sub Notifications for Cloud Storage。Cloud Pub/Sub 通知可让您跟踪 Cloud Storage 对象的更改。如需详细了解 Cloud Pub/Sub for Cloud Storage,请参阅通知概念页面

前提条件

在使用此功能之前,您应执行以下操作:

  1. 为将接收通知的项目启用 Cloud Pub/Sub API。

    启用 API

  2. 对您要监控的存储分区拥有足够的权限:

  3. 对接收通知的项目拥有足够的权限:

    • 如果您拥有接收通知的项目,则您很可能具备所需的权限。

    • 如果您计划创建主题来接收通知,您应具有 pubsub.topics.create 权限。

    • 无论您计划使用新主题还是现有主题,您都应具有 pubsub.topics.setIamPolicy 权限。如果您创建了一个主题,则通常具备该主题的 pubsub.topics.setIamPolicy 权限。

      有关如何获取这些 Cloud Pub/Sub 权限的说明,请参阅 Cloud Pub/Sub 访问权限控制

  4. 存在要向其中发送通知的 Cloud Pub/Sub 主题

  5. 获取与包含 Cloud Storage 存储分区的项目关联的服务帐号的电子邮件地址

  6. 使用您在上一步中获得的电子邮件地址为服务帐号授予所需 Cloud Pub/Sub 主题的 IAM 角色 pubsub.publisher

应用通知配置

以下步骤将向您的存储分区添加通知配置,以便为所有支持的事件发送通知。要为其中部分事件发送通知,请在 gsutil 命令中包含 -e 标志,或在 JSON 请求正文中包含 event_types 键。

gsutil

使用 gsutil notification create 命令,将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

如果您使用项目中不存在的 [TOPIC_NAME],gsutil 会为您创建一个主题名称。

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
  2. 创建一个包含以下信息的 .json 文件,并将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

  3. 使用 cURL,通过 POST notificationConfigs 请求调用 JSON API,将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

列出存储分区的通知配置

要列出与特定存储分区关联的通知配置,请执行以下操作:

gsutil

使用 gsutil notification list 命令,将 [VALUES_IN_BRACKETS] 替换为适当的值:

gsutil notification list gs://[BUCKET_NAME]

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
  2. 使用 cURL,通过 GET notificationConfigs 请求调用 JSON API,将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

移除通知配置

要从存储分区中移除现有通知配置,请执行以下操作:

gsutil

使用 gsutil notification delete 命令,将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。

JSON API

  1. OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
  2. 使用 cURL,通过 DELETE notificationConfigs 请求调用 JSON API,将 [VALUES_IN_BRACKETS] 替换为适当的值:

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

发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面