Configure Pub/Sub notifications for Cloud Storage

Overview

This page describes how to configure your bucket to send notifications about object changes to a Pub/Sub topic. For information on subscribing to a Pub/Sub topic that receives notifications, see Choose a subscription type .

Before you begin

Before using this feature, complete the following instructions.

Enable the Pub/Sub API

Enable the Pub/Sub API for the project that will receive notifications.

Enable the API

Get required roles

To get the permissions that you need to configure and view Pub/Sub notifications for a bucket, ask your administrator to grant you the following roles. These predefined roles contain the permissions required to configure and view Pub/Sub notifications.

  • Storage Admin ( roles/storage.admin ) role on the bucket for which you want to configure Pub/Sub notifications

  • Pub/Sub Admin ( roles/pubsub.admin ) role on the project in which you want to receive Pub/Sub notifications

You might be able to get these permissions with other predefined roles or custom roles .

See Use IAM with buckets for instructions on granting roles on buckets. See Controlling access for instructions on granting roles on projects and setting access controls for topics and subscriptions.

Make sure you have an existing Pub/Sub topic

If you haven't already, create a Pub/Sub topic to which you want to send notifications. This step is not necessary if you plan on using the Google Cloud CLI or Terraform to perform the instructions on this page.

Grant required role to your project's service agent

The following steps are not necessary if you plan on using the Google Cloud CLI or Terraform to perform the instructions on this page.

  1. Get the email address of the service agent associated with the project that contains your Cloud Storage bucket.

  2. Grant the service agent the Pub/Sub Publisher ( roles/pubsub.publisher ) role for the relevant Pub/Sub topic. See Controlling access for instructions on granting roles for topics.

Apply a notification configuration

The following steps add a notification configuration to your bucket that sends notifications for all supported events .

Console

You cannot manage Pub/Sub notifications with the Google Cloud console. Use the gcloud CLI or one of the available client libraries instead.

Command line

Use the gcloud storage buckets notifications create command :

gcloud storage buckets notifications create gs:// BUCKET_NAME 
--topic= TOPIC_NAME 

Where:

  • BUCKET_NAME is the name of the relevant bucket. For example, my-bucket .

  • TOPIC_NAME is the Pub/Sub topic to send notifications to. If you specify a topic that doesn't exist in your project, the command creates one for you.

To send notifications for a subset of events, include the --event-types flag .

Client libraries

C++

For more information, see the Cloud Storage C++ API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  namespace 
  
 gcs 
  
 = 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 storage 
 ; 
 using 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 StatusOr 
 ; 
 []( 
 gcs 
 :: 
 Client 
  
 client 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 bucket_name 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 topic_name 
 ) 
  
 { 
  
 StatusOr<gcs 
 :: 
 NotificationMetadata 
>  
 notification 
  
 = 
  
 client 
 . 
 CreateNotification 
 ( 
 bucket_name 
 , 
  
 topic_name 
 , 
  
 gcs 
 :: 
 NotificationMetadata 
 ()); 
  
 if 
  
 ( 
 ! 
 notification 
 ) 
  
 throw 
  
 std 
 :: 
 move 
 ( 
 notification 
 ). 
 status 
 (); 
  
 std 
 :: 
 cout 
 << 
 "Successfully created notification " 
 << 
 notification 
 - 
> id 
 () 
 << 
 " for bucket " 
 << 
 bucket_name 
 << 
 " 
 \n 
 " 
 ; 
  
 std 
 :: 
 cout 
 << 
 "Full details for the notification: 
 \n 
 " 
 << 
 * 
 notification 
 << 
 " 
 \n 
 " 
 ; 
 } 
 

C#

For more information, see the Cloud Storage C# API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  using 
  
 Google.Apis.Storage.v1.Data 
 ; 
 using 
  
  Google.Cloud.Storage.V1 
 
 ; 
 using 
  
 System 
 ; 
 public 
  
 class 
  
 CreatePubSubNotificationSample 
 { 
  
 public 
  
 Notification 
  
 CreatePubSubNotification 
 ( 
  
 string 
  
 bucketName 
  
 = 
  
 "your-unique-bucket-name" 
 , 
  
 string 
  
 topic 
  
 = 
  
 "my-topic" 
 ) 
  
 { 
  
  StorageClient 
 
  
 storage 
  
 = 
  
  StorageClient 
 
 . 
  Create 
 
 (); 
  
 Notification 
  
 notification 
  
 = 
  
 new 
  
 Notification 
  
 { 
  
 Topic 
  
 = 
  
 topic 
 , 
  
 PayloadFormat 
  
 = 
  
 "JSON_API_V1" 
  
 }; 
  
 Notification 
  
 createdNotification 
  
 = 
  
 storage 
 . 
  CreateNotification 
 
 ( 
 bucketName 
 , 
  
 notification 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "Notification subscription created with ID: " 
  
 + 
  
 createdNotification 
 . 
 Id 
  
 + 
  
 " for bucket name " 
  
 + 
  
 bucketName 
 ); 
  
 return 
  
 createdNotification 
 ; 
  
 } 
 } 
 

Go

For more information, see the Cloud Storage Go API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "cloud.google.com/go/storage" 
 ) 
 // createBucketNotification creates a notification configuration for a bucket. 
 func 
  
 createBucketNotification 
 ( 
 w 
  
 io 
 . 
  Writer 
 
 , 
  
 projectID 
 , 
  
 bucketName 
 , 
  
 topic 
  
 string 
 ) 
  
 error 
  
 { 
  
 // projectID := "my-project-id" 
  
 // bucketName := "bucket-name" 
  
 // topic := "topic-name" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 storage 
 . 
 NewClient 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "storage.NewClient: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
 Close 
 () 
  
 notification 
  
 := 
  
 storage 
 . 
  Notification 
 
 { 
  
 TopicID 
 : 
  
 topic 
 , 
  
 TopicProjectID 
 : 
  
 projectID 
 , 
  
 PayloadFormat 
 : 
  
 storage 
 . 
  JSONPayload 
 
 , 
  
 } 
  
 createdNotification 
 , 
  
 err 
  
 := 
  
 client 
 . 
  Bucket 
 
 ( 
 bucketName 
 ). 
  AddNotification 
 
 ( 
 ctx 
 , 
  
& notification 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "Bucket.AddNotification: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Successfully created notification with ID %s for bucket %s.\n" 
 , 
  
 createdNotification 
 . 
 ID 
 , 
  
 bucketName 
 ) 
  
 return 
  
 nil 
 } 
 

Java

For more information, see the Cloud Storage Java API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 com.google.cloud.storage. Notification 
 
 ; 
 import 
  
 com.google.cloud.storage. NotificationInfo 
 
 ; 
 import 
  
 com.google.cloud.storage. NotificationInfo 
. EventType 
 
 ; 
 import 
  
 com.google.cloud.storage. NotificationInfo 
. PayloadFormat 
 
 ; 
 import 
  
 com.google.cloud.storage. Storage 
 
 ; 
 import 
  
 com.google.cloud.storage. StorageOptions 
 
 ; 
 import 
  
 java.util.Map 
 ; 
 public 
  
 class 
 CreateBucketPubSubNotification 
  
 { 
  
 public 
  
 static 
  
 void 
  
 createBucketPubSubNotification 
 ( 
  
 String 
  
 bucketName 
 , 
  
 String 
  
 topicName 
 , 
  
 Map<String 
 , 
  
 String 
>  
 customAttributes 
 , 
  
  EventType 
 
 [] 
  
 eventTypes 
 , 
  
 String 
  
 objectNamePrefix 
 , 
  
  PayloadFormat 
 
  
 payloadFormat 
 ) 
  
 { 
  
 // The ID to give your GCS bucket 
  
 // String bucketName = "your-unique-bucket-name"; 
  
 // The name of the topic you would like to create a notification for 
  
 // String topicName = "projects/{your-project}/topics/{your-topic}"; 
  
 // Any custom attributes 
  
 // Map<String, String> customAttributes = Map.of("label", "value"); 
  
 // The object name prefix for which this notification configuration applies 
  
 // String objectNamePrefix = "blob-"; 
  
 // Desired content of the Payload 
  
 // PayloadFormat payloadFormat = PayloadFormat.JSON_API_V1.JSON_API_V1; 
  
  Storage 
 
  
 storage 
  
 = 
  
  StorageOptions 
 
 . 
 newBuilder 
 (). 
 build 
 (). 
  getService 
 
 (); 
  
  NotificationInfo 
 
  
 notificationInfo 
  
 = 
  
  NotificationInfo 
 
 . 
 newBuilder 
 ( 
 topicName 
 ) 
  
 . 
 setCustomAttributes 
 ( 
 customAttributes 
 ) 
  
 . 
 setEventTypes 
 ( 
 eventTypes 
 ) 
  
 . 
 setObjectNamePrefix 
 ( 
 objectNamePrefix 
 ) 
  
 . 
 setPayloadFormat 
 ( 
 payloadFormat 
 ) 
  
 . 
 build 
 (); 
  
  Notification 
 
  
 notification 
  
 = 
  
 storage 
 . 
  createNotification 
 
 ( 
 bucketName 
 , 
  
 notificationInfo 
 ); 
  
 String 
  
 topic 
  
 = 
  
 notification 
 . 
  getTopic 
 
 (); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Successfully created notification for topic " 
  
 + 
  
 topic 
 ); 
  
 } 
 } 
 

Node.js

For more information, see the Cloud Storage Node.js API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
 // The ID of your GCS bucket 
 // const bucketName = 'your-unique-bucket-name'; 
 // The name of a topic 
 // const topic = 'my-topic'; 
 // Imports the Google Cloud client library 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 // Creates a client 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 async 
  
 function 
  
 createNotification 
 () 
  
 { 
  
 // Creates a notification 
  
 await 
  
 storage 
 . 
 bucket 
 ( 
 bucketName 
 ). 
  createNotification 
 
 ( 
 topic 
 ); 
  
 console 
 . 
 log 
 ( 
 'Notification subscription created.' 
 ); 
 } 
 createNotification 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 

PHP

For more information, see the Cloud Storage PHP API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

To create a notification configuration for a bucket using PHP, see the Google Cloud Client Library reference documentation.

Python

For more information, see the Cloud Storage Python API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  from 
  
 google.cloud 
  
 import 
  storage 
 
 def 
  
 create_bucket_notifications 
 ( 
 bucket_name 
 , 
 topic_name 
 ): 
  
 """Creates a notification configuration for a bucket.""" 
 # The ID of your GCS bucket 
 # bucket_name = "your-bucket-name" 
 # The name of a topic 
 # topic_name = "your-topic-name" 
 storage_client 
 = 
  storage 
 
 . 
  Client 
 
 () 
 bucket 
 = 
 storage_client 
 . 
  bucket 
 
 ( 
 bucket_name 
 ) 
 notification 
 = 
 bucket 
 . 
 notification 
 ( 
 topic_name 
 = 
 topic_name 
 ) 
 notification 
 . 
 create 
 () 
 print 
 ( 
 f 
 "Successfully created notification with ID 
 { 
 notification 
 . 
  notification_id 
 
 } 
 for bucket 
 { 
 bucket_name 
 } 
 " 
 ) 
 

Ruby

For more information, see the Cloud Storage Ruby API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  require 
  
 "google/cloud/storage" 
 def 
  
 create_bucket_notifications 
  
 bucket_name 
 :, 
  
 topic_name 
 : 
  
 # The ID of your GCS bucket 
  
 # bucket_name = "your-unique-bucket-name" 
  
 # The ID of the pubsub topic 
  
 # topic_name = "your-unique-topic-name" 
  
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  Storage 
 
 . 
  new 
 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
  
 bucket_name 
  
 notification 
  
 = 
  
 bucket 
 . 
  create_notification 
 
  
 topic_name 
  
 puts 
  
 "Successfully created notification with ID 
 #{ 
 notification 
 . 
 id 
 } 
 for bucket 
 #{ 
 bucket_name 
 } 
 " 
 end 
 

Terraform

You can use a Terraform resource to add a notification configuration to a bucket.

 // Create a Pub/Sub notification.
resource "google_storage_notification" "notification" {
  provider       = google-beta
  bucket         = google_storage_bucket.bucket.name
  payload_format = "JSON_API_V1"
  topic          = google_pubsub_topic.topic.id
  depends_on     = [google_pubsub_topic_iam_binding.binding]
}

// Enable notifications by giving the correct IAM permission to the unique service account.
data "google_storage_project_service_account" "gcs_account" {
  provider = google-beta
}

// Create a Pub/Sub topic.
resource "google_pubsub_topic_iam_binding" "binding" {
  provider = google-beta
  topic    = google_pubsub_topic.topic.id
  role     = "roles/pubsub.publisher"
  members  = ["serviceAccount:${data.google_storage_project_service_account.gcs_account.email_address}"]
}

resource "random_id" "bucket_prefix" {
  byte_length = 8
}

// Create a new storage bucket.
resource "google_storage_bucket" "bucket" {
  name                        = "${random_id.bucket_prefix.hex}-example-bucket-name"
  provider                    = google-beta
  location                    = "US"
  uniform_bucket_level_access = true
}

resource "google_pubsub_topic" "topic" {
  name     = "your_topic_name"
  provider = google-beta
} 

REST APIs

JSON API

  1. Have gcloud CLI installed and initialized , which lets you generate an access token for the Authorization header.

  2. Create a JSON file that contains the following information:

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

    Where:

    • PROJECT_ID is the ID for the project associated with the Pub/Sub topic that you want to send notifications to. For example, my-pet-project .

    • TOPIC_NAME is the Pub/Sub topic to send notifications to. For example, my-topic .

    To send notifications for a subset of events, include the event_types field in the body of your JSON request.

  3. Use cURL to call the JSON API with a POST notificationConfigs request:

    curl -X POST --data-binary @ JSON_FILE_NAME 
    \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/ BUCKET_NAME 
    /notificationConfigs"

    Where:

    • JSON_FILE_NAME is the path for the file that you created in Step 2.

    • BUCKET_NAME is the name of the bucket you want notifications to be generated for. For example, my-bucket .

XML API

You cannot manage Pub/Sub notifications with the XML API.

Get a notification configuration

To get a specific notification configuration that's associated with your bucket, complete the following steps:

Console

You cannot manage Pub/Sub notifications with the Google Cloud console. Use the Google Cloud CLI or one of the available client libraries instead.

Command line

Use the gcloud storage buckets notifications describe command :

gcloud storage buckets notifications describe projects/_/buckets/ BUCKET_NAME 
/notificationConfigs/ NOTIFICATION_ID 

Where:

  • BUCKET_NAME is the name of the bucket whose notification configuration you want to retrieve For example, my-bucket .

  • NOTIFICATION_ID is the ID number of the relevant configuration. For example, 5 .

If successful, the response looks similar to the following example:

 e 
 ta 
 g 
 : 
  
 ' 
 132 
 ' 
 id 
 : 
  
 ' 
 132 
 ' 
 ki 
 n 
 d 
 : 
  
 s 
 t 
 orage# 
 n 
 o 
 t 
 i 
 f 
 ica 
 t 
 io 
 n 
 payload_ 
 f 
 orma 
 t 
 : 
  
 JSON_API_V 
 1 
 sel 
 f 
 Li 
 n 
 k 
 : 
  
 h 
 tt 
 ps 
 : 
 //www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 
 t 
 opic 
 : 
  
 //pubsub.googleapis.com/projects/my-project/topics/my-bucket 

Client libraries

C++

For more information, see the Cloud Storage C++ API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  namespace 
  
 gcs 
  
 = 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 storage 
 ; 
 using 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 StatusOr 
 ; 
 []( 
 gcs 
 :: 
 Client 
  
 client 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 bucket_name 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 notification_id 
 ) 
  
 { 
  
 StatusOr<gcs 
 :: 
 NotificationMetadata 
>  
 notification 
  
 = 
  
 client 
 . 
 GetNotification 
 ( 
 bucket_name 
 , 
  
 notification_id 
 ); 
  
 if 
  
 ( 
 ! 
 notification 
 ) 
  
 throw 
  
 std 
 :: 
 move 
 ( 
 notification 
 ). 
 status 
 (); 
  
 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#

For more information, see the Cloud Storage C# API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  using 
  
 Google.Apis.Storage.v1.Data 
 ; 
 using 
  
  Google.Cloud.Storage.V1 
 
 ; 
 using 
  
 System 
 ; 
 public 
  
 class 
  
 GetPubSubNotificationSample 
 { 
  
 public 
  
 Notification 
  
 GetPubSubNotification 
 ( 
  
 string 
  
 bucketName 
  
 = 
  
 "your-unique-bucket-name" 
 , 
  
 string 
  
 notificationId 
  
 = 
  
 "notificationId" 
 ) 
  
 { 
  
  StorageClient 
 
  
 storage 
  
 = 
  
  StorageClient 
 
 . 
  Create 
 
 (); 
  
 Notification 
  
 notification 
  
 = 
  
 storage 
 . 
  GetNotification 
 
 ( 
 bucketName 
 , 
  
 notificationId 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "ID: " 
  
 + 
  
 notification 
 . 
 Id 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "Topic: " 
  
 + 
  
 notification 
 . 
 Topic 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "EventTypes: " 
  
 + 
  
 notification 
 . 
 EventTypes 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "CustomAttributes: " 
  
 + 
  
 notification 
 . 
 CustomAttributes 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "PayloadFormat: " 
  
 + 
  
 notification 
 . 
 PayloadFormat 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "ObjectNamePrefix: " 
  
 + 
  
 notification 
 . 
 ObjectNamePrefix 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "ETag: " 
  
 + 
  
 notification 
 . 
 ETag 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "SelfLink: " 
  
 + 
  
 notification 
 . 
 SelfLink 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "Kind: " 
  
 + 
  
 notification 
 . 
 Kind 
 ); 
  
 return 
  
 notification 
 ; 
  
 } 
 } 
 

Go

For more information, see the Cloud Storage Go API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "cloud.google.com/go/storage" 
 ) 
 // printPubsubBucketNotification gets a notification configuration for a bucket. 
 func 
  
 printPubsubBucketNotification 
 ( 
 w 
  
 io 
 . 
  Writer 
 
 , 
  
 bucketName 
 , 
  
 notificationID 
  
 string 
 ) 
  
 error 
  
 { 
  
 // bucketName := "bucket-name" 
  
 // notificationID := "notification-id" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 storage 
 . 
 NewClient 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "storage.NewClient: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
 Close 
 () 
  
 notifications 
 , 
  
 err 
  
 := 
  
 client 
 . 
  Bucket 
 
 ( 
 bucketName 
 ). 
  Notifications 
 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "Bucket.Notifications: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 n 
  
 := 
  
 notifications 
 [ 
 notificationID 
 ] 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Notification: %+v" 
 , 
  
 n 
 ) 
  
 return 
  
 nil 
 } 
 

Java

For more information, see the Cloud Storage Java API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 com.google.cloud.storage. Notification 
 
 ; 
 import 
  
 com.google.cloud.storage. Storage 
 
 ; 
 import 
  
 com.google.cloud.storage. StorageOptions 
 
 ; 
 public 
  
 class 
 PrintPubSubNotification 
  
 { 
  
 public 
  
 static 
  
 void 
  
 printPubSubNotification 
 ( 
 String 
  
 bucketName 
 , 
  
 String 
  
 notificationId 
 ) 
  
 { 
  
 // The ID to give your GCS bucket 
  
 // String bucketName = "your-unique-bucket-name"; 
  
 // The Pub/Sub topic you would like to find 
  
 // String notificationId = "your-unique-notification-id" 
  
  Storage 
 
  
 storage 
  
 = 
  
  StorageOptions 
 
 . 
 newBuilder 
 (). 
 build 
 (). 
  getService 
 
 (); 
  
  Notification 
 
  
 notification 
  
 = 
  
 storage 
 . 
  getNotification 
 
 ( 
 bucketName 
 , 
  
 notificationId 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
  
 "Found notification " 
  
 + 
  
 notification 
 . 
  getTopic 
 
 () 
  
 + 
  
 " for bucket " 
  
 + 
  
 bucketName 
 ); 
  
 } 
 } 
 

Node.js

For more information, see the Cloud Storage Node.js API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
 // The ID of your GCS bucket 
 // const bucketName = 'your-unique-bucket-name'; 
 // The ID of the notification 
 // const notificationId = '1'; 
 // Imports the Google Cloud client library 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 // Creates a client 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 async 
  
 function 
  
 getMetadata 
 () 
  
 { 
  
 // Get the notification metadata 
  
 const 
  
 [ 
 metadata 
 ] 
  
 = 
  
 await 
  
 storage 
  
 . 
 bucket 
 ( 
 bucketName 
 ) 
  
 . 
  notification 
 
 ( 
 notificationId 
 ) 
  
 . 
 getMetadata 
 (); 
  
 console 
 . 
 log 
 ( 
 `ID: 
 ${ 
 metadata 
 . 
 id 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Topic: 
 ${ 
 metadata 
 . 
  topic 
 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Event Types: 
 ${ 
 metadata 
 . 
  event_types 
 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Custom Attributes: 
 ${ 
 metadata 
 . 
  custom_attributes 
 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Payload Format: 
 ${ 
 metadata 
 . 
  payload_format 
 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Object Name Prefix: 
 ${ 
 metadata 
 . 
  object_name_prefix 
 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Etag: 
 ${ 
 metadata 
 . 
 etag 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Self Link: 
 ${ 
 metadata 
 . 
 selfLink 
 } 
 ` 
 ); 
  
 console 
 . 
 log 
 ( 
 `Kind: 
 ${ 
 metadata 
 . 
 kind 
 } 
 ` 
 ); 
 } 
 getMetadata 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 

PHP

For more information, see the Cloud Storage PHP API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

To get a notification configuration for a bucket using PHP, see the Google Cloud Client Library reference documentation.

Python

For more information, see the Cloud Storage Python API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  from 
  
 google.cloud 
  
 import 
  storage 
 
 def 
  
 print_pubsub_bucket_notification 
 ( 
 bucket_name 
 , 
 notification_id 
 ): 
  
 """Gets a notification configuration for a bucket.""" 
 # The ID of your GCS bucket 
 # bucket_name = "your-bucket-name" 
 # The ID of the notification 
 # notification_id = "your-notification-id" 
 storage_client 
 = 
  storage 
 
 . 
  Client 
 
 () 
 bucket 
 = 
 storage_client 
 . 
  bucket 
 
 ( 
 bucket_name 
 ) 
 notification 
 = 
 bucket 
 . 
  get_notification 
 
 ( 
 notification_id 
 ) 
 print 
 ( 
 f 
 "Notification ID: 
 { 
 notification 
 . 
  notification_id 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Topic Name: 
 { 
 notification 
 . 
  topic_name 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Event Types: 
 { 
 notification 
 . 
  event_types 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Custom Attributes: 
 { 
 notification 
 . 
  custom_attributes 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Payload Format: 
 { 
 notification 
 . 
  payload_format 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Blob Name Prefix: 
 { 
 notification 
 . 
  blob_name_prefix 
 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Etag: 
 { 
 notification 
 . 
 etag 
 } 
 " 
 ) 
 print 
 ( 
 f 
 "Self Link: 
 { 
 notification 
 . 
 self_link 
 } 
 " 
 ) 
 

Ruby

For more information, see the Cloud Storage Ruby API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  require 
  
 "google/cloud/storage" 
 def 
  
 print_pubsub_bucket_notification 
  
 bucket_name 
 :, 
  
 notification_id 
 : 
  
 # The ID of your GCS bucket 
  
 # bucket_name = "your-unique-bucket-name" 
  
 # The ID of your notification configured for the bucket 
  
 # notification_id = "your-notification-id" 
  
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  Storage 
 
 . 
  new 
 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
  
 bucket_name 
  
 notification 
  
 = 
  
 bucket 
 . 
  notification 
 
  
 notification_id 
  
 puts 
  
 "Notification ID: 
 #{ 
 notification 
 . 
 id 
 } 
 " 
  
 puts 
  
 "Topic Name: 
 #{ 
 notification 
 . 
  topic 
 
 } 
 " 
  
 puts 
  
 "Event Types: 
 #{ 
 notification 
 . 
 event_types 
 } 
 " 
  
 puts 
  
 "Kind of Notification: 
 #{ 
 notification 
 . 
 kind 
 } 
 " 
  
 puts 
  
 "Custom Attributes: 
 #{ 
 notification 
 . 
  custom_attrs 
 
 } 
 " 
  
 puts 
  
 "Payload Format: 
 #{ 
 notification 
 . 
  payload 
 
 } 
 " 
  
 puts 
  
 "Blob Name Prefix: 
 #{ 
 notification 
 . 
 prefix 
 } 
 " 
  
 puts 
  
 "Self Link: 
 #{ 
 notification 
 . 
 api_url 
 } 
 " 
 end 
 

REST APIs

JSON API

  1. Have gcloud CLI installed and initialized , which lets you generate an access token for the Authorization header.

  2. Use cURL to call the JSON API with a GET notificationConfigs request:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/ BUCKET_NAME 
    /notificationConfigs/ NOTIFICATION_ID 
    "

    Where:

    • BUCKET_NAME is the name of the bucket whose notification configuration you want to retrieve. For example, my-bucket .

    • NOTIFICATION_ID is the ID number of the notification configuration you want to retrieve. For example, 5 .

XML API

You cannot manage Pub/Sub Notifications with the XML API.

List notification configurations for a bucket

To list all the notification configurations associated with a particular bucket:

Console

You cannot manage Pub/Sub notifications with the Google Cloud console. Use the gcloud CLI or one of the available client libraries instead.

Command line

Use the gcloud storage buckets notifications list command :

gcloud storage buckets notifications list gs:// BUCKET_NAME 

Where BUCKET_NAME is the name of the bucket whose notification configurations you want to list. For example, my-bucket .

Client libraries

C++

For more information, see the Cloud Storage C++ API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  namespace 
  
 gcs 
  
 = 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 storage 
 ; 
 using 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 StatusOr 
 ; 
 []( 
 gcs 
 :: 
 Client 
  
 client 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 bucket_name 
 ) 
  
 { 
  
 StatusOr<std 
 :: 
 vector<gcs 
 :: 
 NotificationMetadata 
>>  
 items 
  
 = 
  
 client 
 . 
 ListNotifications 
 ( 
 bucket_name 
 ); 
  
 if 
  
 ( 
 ! 
 items 
 ) 
  
 throw 
  
 std 
 :: 
 move 
 ( 
 items 
 ). 
 status 
 (); 
  
 std 
 :: 
 cout 
 << 
 "Notifications for bucket=" 
 << 
 bucket_name 
 << 
 " 
 \n 
 " 
 ; 
  
 for 
  
 ( 
 gcs 
 :: 
 NotificationMetadata 
  
 const 
&  
 notification 
  
 : 
  
 * 
 items 
 ) 
  
 { 
  
 std 
 :: 
 cout 
 << 
 notification 
 << 
 " 
 \n 
 " 
 ; 
  
 } 
 } 
 

C#

For more information, see the Cloud Storage C# API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  using 
  
 Google.Apis.Storage.v1.Data 
 ; 
 using 
  
  Google.Cloud.Storage.V1 
 
 ; 
 using 
  
 System 
 ; 
 using 
  
 System.Collections.Generic 
 ; 
 public 
  
 class 
  
 ListPubSubNotificationSample 
 { 
  
 public 
  
 IReadOnlyList<Notification> 
  
 ListPubSubNotification 
 ( 
 string 
  
 bucketName 
  
 = 
  
 "your-unique-bucket-name" 
 ) 
  
 { 
  
  StorageClient 
 
  
 storage 
  
 = 
  
  StorageClient 
 
 . 
  Create 
 
 (); 
  
 IReadOnlyList<Notification> 
  
 notifications 
  
 = 
  
 storage 
 . 
  ListNotifications 
 
 ( 
 bucketName 
 ); 
  
 foreach 
  
 ( 
 Notification 
  
 notification 
  
 in 
  
 notifications 
 ) 
  
 { 
  
 Console 
 . 
 WriteLine 
 ( 
 notification 
 . 
 Id 
 ); 
  
 } 
  
 return 
  
 notifications 
 ; 
  
 } 
 } 
 

Go

For more information, see the Cloud Storage Go API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "cloud.google.com/go/storage" 
 ) 
 // listBucketNotifications lists notification configurations for a bucket. 
 func 
  
 listBucketNotifications 
 ( 
 w 
  
 io 
 . 
  Writer 
 
 , 
  
 bucketName 
  
 string 
 ) 
  
 error 
  
 { 
  
 // bucketName := "bucket-name" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 storage 
 . 
 NewClient 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "storage.NewClient: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
 Close 
 () 
  
 notifications 
 , 
  
 err 
  
 := 
  
 client 
 . 
  Bucket 
 
 ( 
 bucketName 
 ). 
  Notifications 
 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "Bucket.Notifications: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 for 
  
 nID 
 , 
  
 n 
  
 := 
  
 range 
  
 notifications 
  
 { 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Notification topic %s with ID %s\n" 
 , 
  
 n 
 . 
 TopicID 
 , 
  
 nID 
 ) 
  
 } 
  
 return 
  
 nil 
 } 
 

Java

For more information, see the Cloud Storage Java API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 com.google.cloud.storage. Notification 
 
 ; 
 import 
  
 com.google.cloud.storage. Storage 
 
 ; 
 import 
  
 com.google.cloud.storage. StorageOptions 
 
 ; 
 import 
  
 java.util.List 
 ; 
 public 
  
 class 
 ListPubSubNotifications 
  
 { 
  
 public 
  
 static 
  
 void 
  
 listPubSubNotifications 
 ( 
 String 
  
 bucketName 
 ) 
  
 { 
  
 // The ID to give your GCS bucket 
  
 // String bucketName = "your-unique-bucket-name"; 
  
  Storage 
 
  
 storage 
  
 = 
  
  StorageOptions 
 
 . 
 newBuilder 
 (). 
 build 
 (). 
  getService 
 
 (); 
  
 List<Notification> 
  
 notificationList 
  
 = 
  
 storage 
 . 
  listNotifications 
 
 ( 
 bucketName 
 ); 
  
 for 
  
 ( 
  Notification 
 
  
 notification 
  
 : 
  
 notificationList 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
  
 "Found notification " 
  
 + 
  
 notification 
 . 
  getTopic 
 
 () 
  
 + 
  
 " for bucket " 
  
 + 
  
 bucketName 
 ); 
  
 } 
  
 } 
 } 
 

Node.js

For more information, see the Cloud Storage Node.js API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
 // The ID of your GCS bucket 
 // const bucketName = 'your-unique-bucket-name'; 
 // Imports the Google Cloud client library 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 // Creates a client 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 async 
  
 function 
  
 listNotifications 
 () 
  
 { 
  
 // Lists notifications in the bucket 
  
 const 
  
 [ 
 notifications 
 ] 
  
 = 
  
 await 
  
 storage 
 . 
 bucket 
 ( 
 bucketName 
 ). 
  getNotifications 
 
 (); 
  
 console 
 . 
 log 
 ( 
 'Notifications:' 
 ); 
  
 notifications 
 . 
 forEach 
 ( 
 notification 
  
 = 
>  
 { 
  
 console 
 . 
 log 
 ( 
  notification 
 
 . 
 id 
 ); 
  
 }); 
 } 
 listNotifications 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 

PHP

For more information, see the Cloud Storage PHP API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

To list notification configurations associated with a bucket using PHP, see the Google Cloud Client Library reference documentation.

Python

For more information, see the Cloud Storage Python API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  from 
  
 google.cloud 
  
 import 
  storage 
 
 def 
  
 list_bucket_notifications 
 ( 
 bucket_name 
 ): 
  
 """Lists notification configurations for a bucket.""" 
 # The ID of your GCS bucket 
 # bucket_name = "your-bucket-name" 
 storage_client 
 = 
  storage 
 
 . 
  Client 
 
 () 
 bucket 
 = 
 storage_client 
 . 
  bucket 
 
 ( 
 bucket_name 
 ) 
 notifications 
 = 
 bucket 
 . 
  list_notifications 
 
 () 
 for 
 notification 
 in 
 notifications 
 : 
 print 
 ( 
 f 
 "Notification ID: 
 { 
 notification 
 . 
  notification_id 
 
 } 
 " 
 ) 
 

Ruby

For more information, see the Cloud Storage Ruby API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  require 
  
 "google/cloud/storage" 
 def 
  
 list_bucket_notifications 
  
 bucket_name 
 : 
  
 # The ID of your GCS bucket 
  
 # bucket_name = "your-unique-bucket-name" 
  
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  Storage 
 
 . 
  new 
 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
  
 bucket_name 
  
 bucket 
 . 
  notifications 
 
 . 
  each 
 
  
 do 
  
 | 
 notification 
 | 
  
 puts 
  
 "Notification ID: 
 #{ 
 notification 
 . 
 id 
 } 
 " 
  
 end 
 end 
 

REST APIs

JSON API

  1. Have gcloud CLI installed and initialized , which lets you generate an access token for the Authorization header.

  2. Use cURL to call the JSON API with a GET notificationConfigs request:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/ BUCKET_NAME 
    /notificationConfigs"

    Where BUCKET_NAME is the name of the bucket whose notification configurations you want to list. For example, my-bucket .

XML API

You cannot manage Pub/Sub notifications with the XML API.

Remove a notification configuration

To remove an existing notification configuration from your bucket:

Console

You cannot manage Pub/Sub notifications with the Google Cloud console. Use the gcloud CLI or one of the available client libraries instead.

Command line

Use the gcloud storage buckets notifications delete command :

gcloud storage buckets notifications delete projects/_/buckets/ BUCKET_NAME 
/notificationConfigs/ NOTIFICATION_ID 

Where:

  • BUCKET_NAME is the name of the bucket whose notification configuration you want to delete. For example, my-bucket .

  • NOTIFICATION_ID is the ID number of the configuration you want to delete. For example, 5 .

If successful, the response looks similar to the following example:

 Comple 
 te 
 d 
  
 1 

Once sent, it might take up to 30 seconds for all notifications triggered by the notification configuration to stop.

Client libraries

C++

For more information, see the Cloud Storage C++ API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  namespace 
  
 gcs 
  
 = 
  
 :: 
 google 
 :: 
 cloud 
 :: 
 storage 
 ; 
 []( 
 gcs 
 :: 
 Client 
  
 client 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 bucket_name 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 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#

For more information, see the Cloud Storage C# API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  using 
  
 System 
 ; 
 using 
  
  Google.Cloud.Storage.V1 
 
 ; 
 public 
  
 class 
  
 DeletePubSubNotificationSample 
 { 
  
 public 
  
 void 
  
 DeletePubSubNotification 
 ( 
  
 string 
  
 bucketName 
  
 = 
  
 "your-unique-bucket-name" 
 , 
  
 string 
  
 notificationId 
  
 = 
  
 "notificationId" 
 ) 
  
 { 
  
  StorageClient 
 
  
 storage 
  
 = 
  
  StorageClient 
 
 . 
  Create 
 
 (); 
  
 storage 
 . 
  DeleteNotification 
 
 ( 
 bucketName 
 , 
  
 notificationId 
 ); 
  
 Console 
 . 
 WriteLine 
 ( 
 "Successfully deleted notification with ID " 
  
 + 
  
 notificationId 
  
 + 
  
 " for bucket " 
  
 + 
  
 bucketName 
 ); 
  
 } 
 } 
 

Go

For more information, see the Cloud Storage Go API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 "cloud.google.com/go/storage" 
 ) 
 // deleteBucketNotification deletes a notification configuration for a bucket. 
 func 
  
 deleteBucketNotification 
 ( 
 w 
  
 io 
 . 
  Writer 
 
 , 
  
 bucketName 
 , 
  
 notificationID 
  
 string 
 ) 
  
 error 
  
 { 
  
 // bucketName := "bucket-name" 
  
 // notificationID := "notification-id" 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 client 
 , 
  
 err 
  
 := 
  
 storage 
 . 
 NewClient 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "storage.NewClient: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 client 
 . 
 Close 
 () 
  
 bucket 
  
 := 
  
 client 
 . 
  Bucket 
 
 ( 
 bucketName 
 ) 
  
 if 
  
 err 
  
 := 
  
 bucket 
 . 
  DeleteNotification 
 
 ( 
 ctx 
 , 
  
 notificationID 
 ); 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 fmt 
 . 
 Errorf 
 ( 
 "Bucket.DeleteNotification: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Successfully deleted notification with ID %s for bucket %s.\n" 
 , 
  
 notificationID 
 , 
  
 bucketName 
 ) 
  
 return 
  
 nil 
 } 
 

Java

For more information, see the Cloud Storage Java API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  import 
  
 com.google.cloud.storage. Storage 
 
 ; 
 import 
  
 com.google.cloud.storage. StorageOptions 
 
 ; 
 public 
  
 class 
 DeleteBucketPubSubNotification 
  
 { 
  
 public 
  
 static 
  
 void 
  
 deleteBucketPubSubNotification 
 ( 
 String 
  
 bucketName 
 , 
  
 String 
  
 notificationId 
 ) 
  
 { 
  
 // The ID to give your GCS bucket 
  
 // String bucketName = "your-unique-bucket-name"; 
  
 // The NotificationId for the notification you would like to delete 
  
 // String notificationId = "your-unique-notification-id" 
  
  Storage 
 
  
 storage 
  
 = 
  
  StorageOptions 
 
 . 
 newBuilder 
 (). 
 build 
 (). 
  getService 
 
 (); 
  
 boolean 
  
 success 
  
 = 
  
 storage 
 . 
  deleteNotification 
 
 ( 
 bucketName 
 , 
  
 notificationId 
 ); 
  
 if 
  
 ( 
 success 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Successfully deleted notification" 
 ); 
  
 } 
  
 else 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Failed to find notification" 
 ); 
  
 } 
  
 } 
 } 
 

Node.js

For more information, see the Cloud Storage Node.js API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
 // The ID of your GCS bucket 
 // const bucketName = 'your-unique-bucket-name'; 
 // The ID of the notification 
 // const notificationId = '1'; 
 // Imports the Google Cloud client library 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 // Creates a client 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 async 
  
 function 
  
 deleteNotification 
 () 
  
 { 
  
 // Deletes the notification from the bucket 
  
 await 
  
 storage 
 . 
 bucket 
 ( 
 bucketName 
 ). 
  notification 
 
 ( 
 notificationId 
 ). 
 delete 
 (); 
  
 console 
 . 
 log 
 ( 
 `Notification 
 ${ 
 notificationId 
 } 
 deleted.` 
 ); 
 } 
 deleteNotification 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 

PHP

For more information, see the Cloud Storage PHP API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

To delete a notification configuration for a bucket using PHP, see the Google Cloud Client Library reference documentation.

Python

For more information, see the Cloud Storage Python API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  from 
  
 google.cloud 
  
 import 
  storage 
 
 def 
  
 delete_bucket_notification 
 ( 
 bucket_name 
 , 
 notification_id 
 ): 
  
 """Deletes a notification configuration for a bucket.""" 
 # The ID of your GCS bucket 
 # bucket_name = "your-bucket-name" 
 # The ID of the notification 
 # notification_id = "your-notification-id" 
 storage_client 
 = 
  storage 
 
 . 
  Client 
 
 () 
 bucket 
 = 
 storage_client 
 . 
  bucket 
 
 ( 
 bucket_name 
 ) 
 notification 
 = 
 bucket 
 . 
 notification 
 ( 
 notification_id 
 = 
 notification_id 
 ) 
 notification 
 . 
 delete 
 () 
 print 
 ( 
 f 
 "Successfully deleted notification with ID 
 { 
  notification_id 
 
 } 
 for bucket 
 { 
 bucket_name 
 } 
 " 
 ) 
 

Ruby

For more information, see the Cloud Storage Ruby API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  require 
  
 "google/cloud/storage" 
 def 
  
 delete_bucket_notification 
  
 bucket_name 
 :, 
  
 notification_id 
 : 
  
 # The ID of your GCS bucket 
  
 # bucket_name = "your-unique-bucket-name" 
  
 # The ID of your notification configured for the bucket 
  
 # notification_id = "your-notification-id" 
  
 storage 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  Storage 
 
 . 
  new 
 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
  
 bucket_name 
  
 notification 
  
 = 
  
 bucket 
 . 
  notification 
 
  
 notification_id 
  
 notification 
 . 
 delete 
  
 puts 
  
 "Successfully deleted notification with ID 
 #{ 
 notification_id 
 } 
 for bucket 
 #{ 
 bucket_name 
 } 
 " 
 end 
 

Terraform

To remove the notification configuration you created, run terraform destroy from the folder containing your Terraform file.

REST APIs

JSON API

  1. Have gcloud CLI installed and initialized , which lets you generate an access token for the Authorization header.

  2. Use cURL to call the JSON API with a DELETE notificationConfigs request:

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/ BUCKET_NAME 
    /notificationConfigs/ NOTIFICATION_ID 
    "

    Where:

    • BUCKET_NAME is the name of the bucket whose notification configuration you want to delete. For example, my-bucket .

    • NOTIFICATION_ID is the ID number of the notification configuration you want to delete. For example, 5 .

Once sent, it may take up to 30 seconds for all notifications triggered by the notification configuration to stop.

XML API

You cannot manage Pub/Sub notifications with the XML API.

What's next

Create a Mobile Website
View Site in Mobile | Classic
Share by: