Уведомления Cloud Pub / Sub для облачного хранилища в подкаталоге

Я хочу слушать изменения в 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

person dina    schedule 28.02.2018    source источник


Ответы (1)


Действительно, есть способ ограничить уведомления «каталогом» внутри корзины. Имейте в виду, что облачное хранилище - это «плоская» система хранения, в которой не существует концепции каталога; вместо этого GCS интерпретирует большие двоичные объекты с именем, заканчивающимся на /, как папку, но на самом деле, когда объект создается внутри «папки», единственное различие состоит в том, что у него есть имя папки в качестве префикса в имени объекта. Затем структура вроде:

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

Зная это, вы можете использовать параметр -p с командой gsutil notification create. чтобы указать фильтр пути префикса для объектов, от которых вы хотите получать уведомления. Это было бы примерно так:

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

Обратите внимание, что флаг -p просто устанавливает префикс пути для объекта, поэтому вы также можете использовать его для создания оповещения для всех объектов, имя которых начинается с данной строки. В этом случае, если эта данная строка заканчивается на /, вы укажете, что хотите получать уведомления для объектов в папке в вашем сегменте.

person dsesto    schedule 02.03.2018