Firebase 调整图片大小扩展。"Make resized images public"意味着什么?



我使用Firebase Resize Images扩展为内容创建120x120的缩略图,保留原始图像。我希望能够将原始的全尺寸downloadUrl存储在我的内容上,并在我想要显示缩略图时执行downloadUrl.replace('.png', '_120x120.png')。谁想在每个内容上存储2个不同的图像url ?

所以,我将扩展配置为"使调整大小的图像公开",但是调整大小的图像仍然需要一个令牌,它是一个与原始图像不同的令牌,所以我不能通过向原始downloadUrl添加大小参数来获得缩略图。如果我这样做,我得到一个403,因为令牌是不同的。

如果调整大小的图像仍然需要一个令牌,我不确定"使调整大小的图像公开"是什么意思。指导吗?这似乎是一个非常常见的用例,所以也许我遗漏了一些东西。

使文件公开允许您跳过使用下载url,下载url使用过期的访问令牌签名。

相反,您可以使用它们的公共URI访问文件,其格式为:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME

因此,对于其中一个缩略图,使用类似于以下URI的内容:

https://storage.googleapis.com/my-project-id.appspot.com/userImages/NT672kMZu5c1kijkAmsoqRUDivC3/profile_120x120.png

另一个解决方案是修改扩展的源代码以禁用新令牌的生成。这里描述了类似的过程:使用Firebase Image Resize Extension时避免重新生成令牌,但是行号会在12月22日更新

  1. 进入Firebase/Cloud Functions
  2. 查找ext-storage-resize-images-generateResizedImage函数
  3. 点击右边的三个圆点,打开详细使用统计
  4. 进入GCP控制台后,点击EDIT,然后单击NEXT左下方(容易错过)
  5. 导航到/lib/resize-image.js
  6. 查找以下内容(Dec ' 22中的143-145行):
if (metadata.metadata.firebaseStorageDownloadTokens) {
metadata.metadata.firebaseStorageDownloadTokens = uuidv4_1.uuid();
}
  1. 注释掉整个if语句,或者只注释内部if语句。这将防止扩展为调整大小的图像生成新的令牌,而是使用与原始图像相同的令牌。
if (metadata.metadata.firebaseStorageDownloadTokens) {
// metadata.metadata.firebaseStorageDownloadTokens = uuidv4_1.uuid();
}
  1. 保存并重新部署功能。这通常需要几分钟,但很有效。调整大小的图像将具有与原始图像相同的令牌。

注意:如果您在此之后修改了Firebase Console中的Resize Images扩展配置,它将覆盖您的更改,因此您需要再次遵循此过程。

相关内容

  • 没有找到相关文章

最新更新