指定要使用Google云存储通知发布的元数据



我已经在这个线程的帮助下开始了,它给了我一个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"one_answers"size"。

我想设置一个通知,将上传的文件名输出为MESSAGE,将timeCreated和size输出为属性。

有人能解释一下如何操作输入代码来实现这一点吗?

没有办法将有效负载更改为只包括字段的子集。如果为payloadFormat指定JSON_API_V1,则通知有效载荷始终包括完整的对象元数据。

唯一的选择是将payloadFormat设置为NONE。这将根本不发送有效负载,但您仍然可以从通知的属性中添加一些信息。对于您的用例,属性包含objectId,但不包含sizetimeCreated。对于这些额外的字段,您需要读取完整的有效负载。

要使用gsutil不指定有效负载,请使用-f none选项。有关详细信息,请参阅:https://cloud.google.com/storage/docs/gsutil/commands/notification#options

最新更新