我正在使用Firebase中的调整图像大小扩展。在我添加此扩展之前,我已经上传了许多图像,它们位于各自的帖子/存储桶中,并通过实时数据库中的URL链接。
有什么方法可以调整他们存储桶中所有现有图像的大小吗?最好不必将他们的URL与他们的帖子一起重新分配?
如果您查看“调整图像大小”扩展的代码,您会看到扩展背后的Cloud Function是由onFinalize
事件触发的,这意味着:
当在存储桶中成功创建新对象(或现有对象的新一代)时。这包括复制或重写现有对象。
因此,如果不重写/重新生成现有图像,则不会触发扩展。
但是,您可以轻松编写自己的Cloud Function,它执行相同的操作,但会被触发,例如,通过调用特定的URL(HTTPS Cloud Function)或通过在临时Fi恢复集合中创建新文档(后台触发CF)。
此Cloud Function将执行以下步骤:
getFiles()
方法。此方法返回一个GetFilesResponse
对象,该对象是一个File
实例数组。根据要处理的图像数量,您可能需要增加Cloud Function的超时值和/或分配的内存,请参阅https://firebase.google.com/docs/functions/manage-functions#set_timeout_and_memory_allocation