Google cloud storage 子目录上云存储的云发布/订阅通知

Google cloud storage 子目录上云存储的云发布/订阅通知,google-cloud-storage,google-cloud-pubsub,Google Cloud Storage,Google Cloud Pubsub,我想在sub bucket中听听GCS的变化 我试过这个 gsutil notification create -t my-topic -f json gs://my-bucket 但它会通知我所有对象的更改 是否有一种仅从子目录获取的方法,例如: gsutil notification create -t my-topic -f json gs://my-bucket/sub-dir 确实有一种方法可以将通知限制在bucket中的“目录”中。请记住,云存储是一个“平面”存储系统,其中不

我想在sub bucket中听听GCS的变化

我试过这个

gsutil notification create -t  my-topic -f json gs://my-bucket
但它会通知我所有对象的更改

是否有一种仅从子目录获取的方法,例如:

gsutil notification create -t  my-topic -f json gs://my-bucket/sub-dir

确实有一种方法可以将通知限制在bucket中的“目录”中。请记住,云存储是一个“平面”存储系统,其中不存在目录的概念;相反,GCS将名称以
/
结尾的BLOB解释为文件夹,但实际情况是,当在“文件夹”中创建对象时,唯一的区别是在对象名称中以文件夹名称作为前缀。然后,一个类似于:

gs://my-bucket
|_objectA
|_folder
  |_objectB
  |_subfolder
    |_objectC
将在对象名称方面转换为以下内容:

# Object names
gs://my-bucket/objectA
gs://my-bucket/folder/
gs://my-bucket/folder/objectB
gs://my-bucket/folder/subfolder/
gs://my-bucket/folder/subfolder/objectC
知道了这一点,您可以使用
gsutil notification create
命令为要从中获取通知的对象指定前缀路径过滤器。可能是这样的:

gsutil notification create -t my-topic -f json -p folder/ gs://my-bucket
请注意,
-p
标志仅设置对象的路径前缀,因此您还可以使用它为名称以给定字符串开头的所有对象创建通知警报。在这种情况下,如果此给定字符串以
/
结尾,则表示您希望通知bucket中文件夹中的对象