代码之家  ›  专栏  ›  技术社区  ›  dina

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

  •  4
  • dina  · 技术社区  · 6 年前

    我想听听子桶中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 回复  |  直到 6 年前
        1
  •  8
  •   dsesto    6 年前

    确实有一种方法可以将通知限制在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
    

    知道了这一点,你可以 use the -p option 使用 gsutil notification create 命令为要从中获取通知的对象指定前缀路径筛选器。可能是这样的:

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

    请注意 -p flag只设置对象的路径前缀,因此您还可以使用它为名称以给定字符串开头的所有对象创建通知警报。在这种情况下,如果 给定字符串 以a结尾 / ,您将指示希望通知bucket中文件夹中的对象。