Firebase云函数图像大小调整

Firebase云函数图像大小调整,firebase,google-cloud-functions,firebase-storage,Firebase,Google Cloud Functions,Firebase Storage,下面的例子 处理图像时如何通知客户端 我想有一个表单上传一张照片,并将其调整为多个大小。我如何让客户知道云功能何时完成 我正在使用firebase/storage上载图像客户端,然后我可以使用一个函数监听要上载的文件functions.storage.object().onFinalize并处理/调整图像大小。当云功能完成时,是否有对客户端的回调,或者是否有对我需要设置发布/订阅的回调?您的最终新图像(小图像或其他任何图像)会有一些URL,比如storageCompany.net/123123.

下面的例子

处理图像时如何通知客户端

我想有一个表单上传一张照片,并将其调整为多个大小。我如何让客户知道云功能何时完成

我正在使用
firebase/storage
上载图像客户端,然后我可以使用一个函数监听要上载的文件
functions.storage.object().onFinalize
并处理/调整图像大小。当云功能完成时,是否有对客户端的回调,或者是否有对我需要设置发布/订阅的回调?

您的最终新图像(小图像或其他任何图像)会有一些URL,比如storageCompany.net/123123.jpg

因此,在您的实时Firebase中,您将有一些提供这些URL的位置

所以,也许有点像

user/NNNN/photos/thumbnails
所以说清楚一点,你可能

user/NNNN/photos/thumbnails/726376733677.jpg
user/NNNN/photos/thumbnails/808080188180.jpg
user/NNNN/photos/thumbnails/363636636636.jpg
现在你要加上

user/NNNN/photos/thumbnails/123123123123.jpg
因此,实际上,你的应用程序只需观察新项目(即字符串-URL)出现在该位置


为了清楚起见,假设您有一个ios或droid应用程序,可以显示“任何类型的图像”,这是一个Firebase项目

因此,在您的示例中是“由服务器创建”的“缩略图”

但是你展示什么样的图像并不重要

在一个

  • Firebase项目
  • “显示图像”
基本的想法就是我上面解释的-你只需要,不管怎样,一个Firebase位置,它有“图像的URL”

就这么简单

一旦图像“准备就绪”——无论如何——上传,图像由3D软件生成。。不管怎样

这就是你如何制作一个Firebase项目的“图像”。iOS、droid或www

当然有很多变化。在这个例子中

我们有一个大文件夹,里面有很多“图片”。每个“图像”都有许多字段,包括各种实际的图像URL(缩略图、大缩略图、视频等)

正如您所问,“缩略图”(比如)URL仅在创建图像并上传到某个存储URL时出现

享受

你的终极新图片(小图片或其他任何图片)会有一些URL,比如storageCompany.net/123123.jpg

因此,在您的实时Firebase中,您将有一些提供这些URL的位置

所以,也许有点像

user/NNNN/photos/thumbnails
所以说清楚一点,你可能

user/NNNN/photos/thumbnails/726376733677.jpg
user/NNNN/photos/thumbnails/808080188180.jpg
user/NNNN/photos/thumbnails/363636636636.jpg
现在你要加上

user/NNNN/photos/thumbnails/123123123123.jpg
因此,实际上,你的应用程序只需观察新项目(即字符串-URL)出现在该位置


为了清楚起见,假设您有一个ios或droid应用程序,可以显示“任何类型的图像”,这是一个Firebase项目

因此,在您的示例中是“由服务器创建”的“缩略图”

但是你展示什么样的图像并不重要

在一个

  • Firebase项目
  • “显示图像”
基本的想法就是我上面解释的-你只需要,不管怎样,一个Firebase位置,它有“图像的URL”

就这么简单

一旦图像“准备就绪”——无论如何——上传,图像由3D软件生成。。不管怎样

这就是你如何制作一个Firebase项目的“图像”。iOS、droid或www

当然有很多变化。在这个例子中

我们有一个大文件夹,里面有很多“图片”。每个“图像”都有许多字段,包括各种实际的图像URL(缩略图、大缩略图、视频等)

正如您所问,“缩略图”(比如)URL仅在创建图像并上传到某个存储URL时出现


享受

您必须在客户和您的职能部门之间安排一个交换点。通常,这将是数据库中的某个已知位置,函数将在该位置写入结果,客户端可以侦听更改以了解工作何时完成


您正在使用的示例需要修改,以允许客户端和服务器提前就唯一位置达成一致。

您必须在客户端和您的功能之间安排一个交换点。通常,这将是数据库中的某个已知位置,函数将在该位置写入结果,客户端可以侦听更改以了解工作何时完成


您正在使用的示例需要修改,以允许客户端和服务器提前就唯一位置达成一致。

Firebase图像大小调整存在两个问题—(1)图像大小调整完成后通知客户端很难,以及(2)您永远不知道客户端应用程序可能需要的确切大小(假设您正在构建响应性应用程序)

这两个问题可以通过使用动态图像大小调整方法来解决。客户端应用程序可以直接将图像上传到Google存储(通过签名URL和PUT请求),一旦上传完成,它可以立即请求调整大小的图像。例如:

-原始图像 -动态调整图像大小

调整大小的图像可以缓存在Google存储桶和CDN中

$ npm install image-resizing --save
const{createHandler}=require(“图像大小调整”);
module.exports.img=createHandler({
//源图像所在的位置。
//例如:gs://s.example.com/image.jpg
sourceBucket:“s.example.com”,
//需要存储变换后的图像的位置。
//例如:gs://c.example.com/w_80,h_60/image.jpg
cacheBucket:“c.example.com”,
});

Firebase图像大小调整有两个问题-(1)图像大小调整完成后通知客户端很困难,(2)您永远不知道客户端应用程序可能需要的确切大小(假设您正在构建响应式应用程序)

这两个问题可以通过使用动态图像大小调整方法来解决。客户端应用程序可以将图像直接上传到谷歌存储(通过签名URL)