生成具有可预测 URL 的缩略图

Thé*_*ion 5 google-cloud-storage firebase google-cloud-functions

我正在构建一个 Flutter 应用程序,我使用不同尺寸的相同图像。出于性能原因,我想根据客户端上的显示尺寸获取不同尺寸的相同图像。

为此,我将构建一个系统,允许我使用云功能在 Firebase 存储上生成每个上传图像的缩略图,然后使用来自客户端的这些缩略图。

上传时,用户将收到源图像的公共 URL,并且只需将所需的大小附加到 URL 即可获取特定的缩略图版本(例如https://google.api.com/mybucket/myprofilepicture.png-> https://google.api.com/mybucket/myprofilepicture@2x.png

但是,Firebase 云存储使用令牌保护机制(例如https://google.api.com/mybucket/myprofilepicture.png?alt=media&token=09cb2927-4706-4e36-95ae-2515c68b0d6e使客户端无法预测新上传文件的公共 URL。

官方缩略图生成云函数示例通过将生成的 URL 保存到云 Firestore 中来解决此问题,因此需要从客户端进行另一次调用来获取可用的缩略图。https://github.com/firebase/functions-samples/tree/master/generate-thumbnail

有没有办法为缩略图生成可预测的 URL,以避免将它们存储在单独的数据库中的开销?