Google Cloud Functions onFinalize()上下文

时间:2018-10-11 09:45:44

标签: firebase google-cloud-functions firebase-storage

在将对象上传到存储桶时,如何将一些元数据与对象一起传递?

我正在使用单独的存储桶进行图像处理,因为我无法仅在工作文件夹中的特定文件夹内触发Cloud Functions,因此我需要从该服务存储桶中取回经过编辑的图像,然后将其放置适当地。听起来很琐碎,但事实并非如此。

话虽如此,我试图通过.object().onFinalize((object, context) => {}获取上下文:

{ eventId: '226356658372982',
  timestamp: '2018-10-11T09:17:07.052Z',
  eventType: 'google.storage.object.finalize',
  resource: 
   { service: 'storage.googleapis.com',
     name: 'projects/_/buckets/bucket/objects/image.jpg',
     type: 'storage#object' },
  params: {} }

那不是很有帮助。
我可以考虑在工作桶中使用object.name条件作为最后的手段,但是应该有一种更加文明的方式来处理这种情况。

1 个答案:

答案 0 :(得分:0)

如果您希望存储触发器仅处理添加到存储桶中的某些文件,则必须在函数中编写代码以确定该文件是否为您要处理的文件。正如您所指出的,通常是通过查看对象的名称来完成的。

如果您不想这样做,可以在上传时将元数据附加到文件中。由于您尚未说明要使用哪种语言或环境上传文件,因此,我将为您介绍upload()的node.js文档。请注意,可选的metadata参数具有options属性。其他平台也具有类似的在上传过程中指定元数据的方式。

最重要的是,如果要处理已完成的文件,则需要在函数中弄清楚。