使用 Firebase Image Resize Extension 时避免重新生成令牌

Posted

技术标签:

【中文标题】使用 Firebase Image Resize Extension 时避免重新生成令牌【英文标题】:Avoid re-generating token when using Firebase Image Resize Extension 【发布时间】:2021-10-23 23:09:36 【问题描述】:

我在删除原始图片的同时成功使用Firebase resize extension生成缩略图,但是一旦触发扩展,就会为新调整大小的图片重新更新原始静态令牌。为了阅读缩略图,我需要运行一个新的ref.getDownloadURL(),我真的很想避免(额外的复杂性+额外的成本)。有没有办法告诉扩展(或底层函数)保留旧令牌(元数据)? s.o.上的大多数答案似乎指的是旧版本的扩展或解决了部分类似的问题,但不是这个。

【问题讨论】:

【参考方案1】:

由于扩展程序写入了新文件,因此没有内置方法来保留旧令牌。不重用现有令牌是一个明确的决定,因此您可能需要阅读 here。

可以做的是自己在metadata/metadata/firebaseStorageDownloadTokens 属性中设置旧令牌,如here 所示。扩展几乎与here 相同,但它总是生成一个新令牌。如果您想保留旧令牌,则必须在代码中执行此操作,或者自己修改扩展。

【讨论】:

【参考方案2】:

我最终将 Image Resize Extension 函数的代码更改为 suggested by Frank van Puffelen:

    照常启用图像调整大小扩展 转到您的云功能选项卡,单击ext-storage-resize-images-generateResizedImage,然后从右侧的三个点中选择Detailed Usage Stats 这会将您带到Google Cloud console 从这里浏览到 lib/resize-image.js 文件并删除第 110..112 行或为整行 111 添加注释 保存并重新部署云函数 享受使用旧 UUID 调整大小的图像?

【讨论】:

以上是关于使用 Firebase Image Resize Extension 时避免重新生成令牌的主要内容,如果未能解决你的问题,请参考以下文章

vue-image-upload-resize 重置图片文件

Perl Image Resize 使用 GD 并保持图像质量

numpy.resize(image,(IMG_HEIGHT,IMG_WIDTH,3)) 中的 3 是啥?

torchvision中的resize对PIL.Image对象的处理速度要优于opencv近7千倍

torchvision中的resize对PIL.Image对象的处理速度要优于opencv近7千倍

R语言使用magick包的image_scale函数对图像进行缩放(resize)可以自定义从宽度或者高度角度进行缩放