子目录上的云存储的云发布/子通知

时间:2018-02-28 08:50:08

标签: google-cloud-storage google-cloud-pubsub

我想听听子桶中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

1 个答案:

答案 0 :(得分:2)

确实有办法将通知限制在"目录"在一个桶里面。请记住,云存储是一个平坦的"存储系统,其中目录的概念不存在;相反,GCS将名称以/结尾的blob解释为文件夹,但实际情况是,当在"文件夹内创建对象时,唯一的区别是它具有文件夹name作为对象名称中的前缀。然后,结构如:

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

了解这一点,您可以use the -p option使用gsutil notification create命令为要从中获取通知的对象指定前缀路径过滤器。它会是这样的:

gsutil notification create -t my-topic -f json -p folder/ gs://my-bucket

请注意,-p标志只是设置对象的路径前缀,因此您也可以使用它来为名称以给定字符串开头的所有对象创建通知警报。在这种情况下,如果此给定字符串/结尾,则表示您需要通知存储桶中文件夹中的对象。