GCS的发布/订阅通知 - 事件过滤器不起作用

时间:2017-04-24 13:16:13

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

我想要的是每当(并且仅当)在GCS上创建文件时,我的发布/订阅订阅都可以收到通知。

所以我这样做了:

gsutil notification create -t projects/[my-project-id]/topics/new-raw-file -f none -m eventType:OBJECT_FINALIZE gs://[the-target-bucket]

我认为此配置已成功设置,因为当我运行gsutil notification list时,它会显示:

projects/_/buckets/[the-target-bucket]/notificationConfigs/7
Cloud Pub/Sub topic: projects/[my-project-id]/topics/new-raw-file
Custom attributes:
    eventType: OBJECT_FINALIZE

这是唯一的配置。

但是,除了文件创建之外,我还会收到文件删除通知:

Received 1 messages.
* 118758642722910: message - , attributes - {u'resource': u'projects/_/buckets/[the-target-bucket]/objects/2466870.3.txt#1493038968423735', u'objectId': u'2466870.3.txt', u'bucketId': u'[the-target-bucket]', u'notificationConfig': u'projects/_/buckets/[the-target-bucket]/notificationConfigs/7', u'payloadFormat': u'NONE', u'eventType': u'OBJECT_DELETE', u'objectGeneration': u'1493038968423735'}

没有得到出错的地方。

1 个答案:

答案 0 :(得分:1)

原来我误用了一个命令选项。根据{{​​3}}," -m"实际上只是向通知附加一个键:value属性,它与我想要的事件过滤器无关。正确的选择应该是" -e" 。因此,以下config命令实际上正常工作:enter code here

gsutil notification create -t [TOPIC_NAME] -f json  -e OBJECT_FINALIZE gs://[BUCKET_NAME]