本页面介绍了如何配置存储桶,以将有关对象更改的通知发送到 Pub/Sub 主题。如需了解如何订阅可接收通知的 Pub/Sub 主题,请参阅选择订阅类型。
准备工作
要使用此功能,请先按照以下说明完成操作。
启用 Pub/Sub API
为将接收通知的项目启用 Pub/Sub API。
获取所需角色
如需获得配置和查看存储桶的 Pub/Sub 通知所需的权限,请让您的管理员为您授予以下角色。这些预定义角色包含配置和查看 Pub/Sub 通知所需的权限。
要为其配置 Pub/Sub 通知的存储桶的 Storage Admin (
roles/storage.admin
) 角色要在其中接收 Pub/Sub 通知的项目的 Pub/Sub Admin (
roles/pubsub.admin
) 角色
如需了解如何授予存储桶的角色,请参阅将 IAM 与存储桶搭配使用。如需了解如何授予项目的角色以及为主题和订阅设置访问权限控制,请参阅控制访问权限。
确保您已具有现有的 Pub/Sub 主题
如果尚未创建,请创建 Pub/Sub 主题以向其发送通知。如果您计划使用 Google Cloud CLI 或 Terraform 执行本页面上的说明,则无需执行此步骤。
向项目的服务代理授予所需角色
如果您计划使用 Google Cloud CLI 或 Terraform 来执行本页面上的说明,则无需执行以下步骤。
为服务代理授予相关 Pub/Sub 主题的 Pub/Sub Publisher (
roles/pubsub.publisher
) 角色。如需了解如何授予主题的角色,请参阅控制访问权限。
应用通知配置
以下步骤将向您的存储桶添加通知配置,用于为所有支持的事件发送通知。
控制台
您无法使用Trusted Cloud 控制台来管理 Pub/Sub 通知。请改用 gcloud CLI 或某一可用的客户端库。
命令行
使用 gcloud storage buckets notifications create
命令:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
其中:
BUCKET_NAME
是相关存储桶的名称,例如my-bucket
。TOPIC_NAME
是要向其发送通知的 Pub/Sub 主题。如果您指定项目中不存在的主题,该命令会为您创建该主题。
如需为一部分事件发送通知,请添加 --event-types
标志。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Terraform
您可以使用 Terraform 资源向存储桶添加通知配置。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。创建一个包含以下信息的 JSON 文件:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
其中:
PROJECT_ID
是与您要向其发送通知的 Pub/Sub 主题相关联的项目的 ID。例如my-pet-project
。TOPIC_NAME
是要向其发送通知的 Pub/Sub 主题。例如my-topic
。
使用
cURL
,通过POST notificationConfigs
请求调用 JSON API:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/notificationConfigs"
其中:
JSON_FILE_NAME
是您在第 2 步中创建的文件的路径。BUCKET_NAME
是您要为其生成通知的存储桶的名称。例如my-bucket
。
XML API
您无法使用 XML API 来管理 Pub/Sub 通知。
获取通知配置
如需获取与您的存储桶关联的特定通知配置,请完成以下步骤:
控制台
您无法使用Trusted Cloud 控制台来管理 Pub/Sub 通知。请改用 Google Cloud CLI 或某一可用的客户端库。
命令行
使用 gcloud storage buckets notifications describe
命令:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
其中:
BUCKET_NAME
是您要检索其通知配置的存储桶的名称,例如my-bucket
。NOTIFICATION_ID
是相关配置的 ID 编号。例如5
。
如果成功,响应类似于以下示例:
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.s3nsapis.fr/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过GET notificationConfigs
请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
其中:
BUCKET_NAME
是您要检索其通知配置的存储桶的名称。例如my-bucket
。NOTIFICATION_ID
是您要检索的通知配置的 ID 编号。例如5
。
XML API
您无法使用 XML API 来管理 Pub/Sub 通知。
列出存储桶的通知配置
如需列出与特定存储桶关联的所有通知配置,请执行以下操作:
控制台
您无法使用Trusted Cloud 控制台来管理 Pub/Sub 通知。请改用 gcloud CLI 或某一可用的客户端库。
命令行
使用 gcloud storage buckets notifications list
命令:
gcloud storage buckets notifications list gs://BUCKET_NAME
其中,BUCKET_NAME
是您要列出其通知配置的存储桶的名称。例如 my-bucket
。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过GET notificationConfigs
请求调用 JSON API:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/notificationConfigs"
其中,
BUCKET_NAME
是您要列出其通知配置的存储桶的名称。例如my-bucket
。
XML API
您无法使用 XML API 来管理 Pub/Sub 通知。
移除通知配置
如需从存储桶中移除现有通知配置,请执行以下操作:
控制台
您无法使用Trusted Cloud 控制台来管理 Pub/Sub 通知。请改用 gcloud CLI 或某一可用的客户端库。
命令行
使用 gcloud storage buckets notifications delete
命令:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
其中:
BUCKET_NAME
是您要删除其通知配置的存储桶的名称。例如my-bucket
。NOTIFICATION_ID
是您要删除的配置的 ID 号。 例如5
。
如果成功,响应类似于以下示例:
Completed 1
发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。
客户端库
C++
如需了解详情,请参阅 Cloud Storage C++ API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
C#
如需了解详情,请参阅 Cloud Storage C# API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Go
如需了解详情,请参阅 Cloud Storage Go API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Java
如需了解详情,请参阅 Cloud Storage Java API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Node.js
如需了解详情,请参阅 Cloud Storage Node.js API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
PHP
如需了解详情,请参阅 Cloud Storage PHP API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Python
如需了解详情,请参阅 Cloud Storage Python API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Ruby
如需了解详情,请参阅 Cloud Storage Ruby API 参考文档。
如需向 Cloud Storage 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
在运行代码示例之前,请将 GOOGLE_CLOUD_UNIVERSE_DOMAIN
环境变量设置为 s3nsapis.fr
。
Terraform
如需移除您创建的通知配置,请在包含 Terraform 文件的文件夹中运行 terraform destroy
。
REST API
JSON API
安装并初始化 gcloud CLI,以便为
Authorization
标头生成访问令牌。使用
cURL
,通过DELETE notificationConfigs
请求调用 JSON API:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
其中:
BUCKET_NAME
是您要删除其通知配置的存储桶的名称。例如my-bucket
。NOTIFICATION_ID
是您要删除的通知配置的 ID 编号。例如5
。
发送通知后,通知配置触发的所有通知最多可能需要 30 秒才能停止。
XML API
您无法使用 XML API 来管理 Pub/Sub 通知。
后续步骤
在 Pub/Sub 中创建订阅以查看 Cloud Storage 发送的通知。