本页面介绍如何设置和使用适用于 Cloud Storage 的 Pub/Sub 通知。Pub/Sub 通知功能可让您跟踪 Cloud Storage 对象的更改。
前提条件
在使用此功能之前,您应执行以下操作:
为将接收通知的项目启用 Pub/Sub API。
对您要监控的存储分区拥有足够的权限:
如果您拥有存储分区所属的项目,那么您很可能已具备所需的权限。
如果您使用 IAM,则应该具有
storage.buckets.update
权限。如需了解如何执行此操作,请参阅使用 IAM 权限。
对接收通知的项目拥有足够的权限:
如果您拥有接收通知的项目,则您很可能具备所需的权限。
如果您打算创建主题来接收通知,应具备
pubsub.topics.create
权限。无论您是打算使用新主题还是现有主题,都应具备
pubsub.topics.setIamPolicy
权限。如果您创建了一个主题,则通常具备该主题的pubsub.topics.setIamPolicy
权限。如需了解如何获得这些 Pub/Sub 权限,请参阅 Pub/Sub 访问权限控制。
使用您在上一步中获得的电子邮件地址为服务帐号授予所需 Pub/Sub 主题的 IAM 角色
pubsub.publisher
。
应用通知配置
以下步骤将向您的存储分区添加通知配置,用于为所有支持的事件发送通知。
gsutil
使用 gsutil notification create
命令,注意要将 PLACEHOLDERS
替换为适当的值:
gsutil notification create -t TOPIC_NAME -f json gs://BUCKET_NAME
如果您使用项目中不存在的 TOPIC_NAME
,gsutil 会为您创建一个主题名称。
如需为一部分事件发送通知,请添加 -e
标志。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需使用 C# 为存储分区创建通知配置,请参阅 CreateTopic 参考文档。Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需使用 Go 为存储分区创建通知配置,请参阅 BucketHandle 参考文档。Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
您目前无法使用 Java 客户端库管理 Pub/Sub 通知。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需使用 NodeJS 为存储分区创建通知配置,请参阅存储分区参考文档。PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需使用 PHP 为存储分区创建通知配置,请参阅 Google Cloud 客户端库参考文档。Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需使用 Python 为存储分区创建通知配置,请参阅存储分区参考文档。Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需使用 Ruby 为存储分区创建通知配置,请参阅Google::Cloud::Storage::Bucket
类参考文档。
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
创建一个包含以下信息的 .json 文件,并将
PLACEHOLDERS
替换为适当的值:{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
如需为一部分事件发送通知,请在 JSON 请求的正文中添加
event_types
字段。使用
cURL
,通过POST notificationConfigs
请求调用 JSON API,注意要将PLACEHOLDERS
替换为适当的值: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"
列出存储分区的通知配置
如需列出与特定存储分区关联的通知配置,请执行以下操作:
gsutil
使用 gsutil notification list
命令,注意要将 PLACEHOLDERS
替换为适当的值:
gsutil notification list gs://BUCKET_NAME
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需使用 C# 列出与存储分区关联的通知配置,请参阅 StorageClient 参考文档。Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需使用 Go 列出与存储分区关联的通知配置,请参阅 BucketHandle 参考文档。Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
您目前无法使用 Java 客户端库管理 Pub/Sub 通知。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需使用 NodeJS 列出与存储分区关联的通知配置,请参阅存储分区参考文档。PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需使用 PHP 列出与存储分区关联的通知配置,请参阅 Google Cloud 客户端库参考文档。Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需使用 Python 列出与存储分区关联的通知配置,请参阅存储分区参考文档。Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需使用 Ruby 列出与存储分区关联的通知配置,请参阅Google::Cloud::Storage::Bucket
类参考文档。
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过GET notificationConfigs
请求调用 JSON API,注意要将PLACEHOLDERS
替换为适当的值:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
移除通知配置
如需从存储分区中移除现有通知配置,请执行以下操作:
gsutil
使用 gsutil notification delete
命令,注意要将 PLACEHOLDERS
替换为适当的值:
gsutil notification delete projects/_/buckets/BUCKET_NAME/notificationConfigs/CONFIGURATION_NAME
发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。
代码示例
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需使用 C# 删除存储分区的通知配置,请参阅 StorageClient 参考文档。Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需使用 Go 删除存储分区的通知配置,请参阅 BucketHandle 参考文档。Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
您目前无法使用 Java 客户端库管理 Pub/Sub 通知。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需使用 NodeJS 删除存储分区的通知配置,请参阅通知参考文档。PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需使用 PHP 删除存储分区的通知配置,请参阅 Google Cloud 客户端库参考文档。Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需使用 Python 删除存储分区的通知配置,请参阅通知参考文档。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需使用 Ruby 删除存储分区的通知配置,请参阅Google::Cloud::Storage::Notification
类参考文档。
JSON API
- 从 OAuth 2.0 Playground 获取授权访问令牌。将 Playground 配置为使用您自己的 OAuth 凭据。
使用
cURL
,通过DELETE notificationConfigs
请求调用 JSON API,注意要将PLACEHOLDERS
替换为适当的值:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/CONFIGURATION_NAME"
发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。
后续步骤
- 详细了解适用于 Cloud Storage 的 Pub/Sub 通知。
- 在 Pub/Sub 中创建订阅以查看 Cloud Storage 发送的通知。
- 参阅 GitHub 上用于轮询通知的 Python 示例应用。
- 创建一个使用适用于 Cloud Storage 的 Pub/Sub 通知的相册。
- 了解如何使用 Pub/Sub 执行长时间运行的任务。