Указание метаданных для публикации с помощью уведомлений облачного хранилища Google - PullRequest
0 голосов
/ 13 декабря 2018

Я начал с помощью этой темы , дав мне команду gsutil:

gsutil notification create \
-t bucketcfpubsub -f json \
-e OBJECT_FINALIZE gs://bucketcfpubsub

С которой я опубликовал это сообщение:

b'{\n "kind": "storage#object",\n "id": "bucketcfpubsub/test.txt/1544681756538155",\n "selfLink": "https://www.googleapis.com/storage/v1/b/bucketcfpubsub/o/test.txt",\n "name": "test.txt",\n "bucket": "bucketcfpubsub",\n "generation": "1544681756538155",\n "metageneration": "1",\n "contentType": "text/plain",\n "timeCreated": "2018-12-13T06:15:56.537Z",\n "updated": "2018-12-13T06:15:56.537Z",\n "storageClass": "STANDARD",\n "timeStorageClassUpdated": "2018-12-13T06:15:56.537Z",\n "size": "1938",\n "md5Hash": "sDSXIvkR/PBg4mHyIUIvww==",\n "mediaLink": "https://www.googleapis.com/download/storage/v1/b/bucketcfpubsub/o/test.txt?generation=1544681756538155&alt=media",\n "crc32c": "UDhyzw==",\n "etag": "CKvqjvuTnN8CEAE="\n}\n'

Вы можете увидеть его более «читабельно» здесь

Однако это руководство по документации намекает на то, что мы можем сократить это до конкретных метаданных, которые нас интересуютНапример, имя файла с «objectId».Но точно не сказано, как это можно реализовать с помощью gsutil.В приведенной выше текстовой стене есть также «timeCreated» и «size».

Я хотел бы настроить уведомление, которое выводит имя файла, загруженного как MESSAGE, и timeCreated и size как атрибуты.

Может кто-нибудь объяснить, как можно манипулировать входным кодом для достижения этой цели?

1 Ответ

0 голосов
/ 13 декабря 2018

Нет способа изменить полезную нагрузку, включив только подмножество полей.Полезные данные уведомлений всегда включают полные метаданные объекта, если вы укажете JSON_API_V1 для payloadFormat.

. Единственная альтернатива - установить payloadFormat в NONE.Это вообще не отправит полезную нагрузку, но вы все равно можете получить дополнительную информацию из атрибутов уведомления.Для вашего случая использования атрибуты содержат objectId, но не size и timeCreated.Для этих дополнительных полей вам необходимо прочитать всю полезную нагрузку.

Чтобы указать отсутствие полезной нагрузки с помощью gsutil, используйте параметр -f none.Подробности см .: https://cloud.google.com/storage/docs/gsutil/commands/notification#options

...