如何设置在特定时间创建的元数据?

How to set metadata that created at certain time?

我想在创建日期为今晚 12 点时设置所有对象的元数据。现在,我可以使用以下命令为存储桶中已有的所有对象设置元数据:

gsutil -m setmeta -h "Content-Type:application/pdf" -h "Content-disposition: inline"  gs://mystorage/pdf/*.pdf

我的计划是 运行 gsutil command 在午夜自动设置所有新对象,因为我已经发出命令 将所有文件从我的服务器上传到 google 存储每个午夜。但唯一的问题是我不知道 文件是新的。

我知道我们可以使用 google cloud trigger,但我只想尽可能使用 gsutil command

我认为 gsutil 或 GCS API 没有提供基于时间戳为对象设置元数据的功能。

根据link At upload time you can specify one or more metadata properties to associate with objects.

如您所述I already make a command which uploads all files from my server to google storage every midnight您可以在上传对象时设置元数据。在您的情况下,命令可能如下所示。

gsutil -m setmeta -h "Content-Type:application/pdf" -h "Content-disposition: inline"  cp -r images gs://bucket/images

否则

您可以列出基于 的对象并将输出存储到文件中。通过遍历 outfile 文件中的每一行,对对象使用 setmetadata 命令。

或者,您可以使用 Pub/Sub notifications for Cloud Storage,并订阅新对象事件 OBJECT_FINALIZE

一些示例代码可以参考here