用于firebase存储的动态映像大小调整

时间:2017-08-20 08:55:50

标签: firebase firebase-storage

是否有一种有效的方法通过更改图片网址中的查询参数来提供存储在firebase存储中的动态大小图片?或者类似Imgix的东西?什么是最有效的方法?

2 个答案:

答案 0 :(得分:7)

我建议您尝试使用ImageMagick调整Firebase存储大小的云功能

  

Writing a Cloud Storage Trigger with Cloud Functions for Firebase

示例代码

  

generate thumbnail

答案 1 :(得分:1)

我在firebase项目中使用以下技术来完成您的要求。 Google云有一个动态的imageURL,您可以根据url参数提供图像大小。

您必须在图片上传后调用getImageServingUrl方法 - 这样您就可以获得动态图片服务网址了。因此,除了您的firebase项目之外,您还必须设置一个Google云项目来托管将为图片生成服务网址的服务。

以下是在上传文件后可以点击的端点的GO示例,以获取动态图片网址。

import (
    "fmt"
    "net/http"
    "google.golang.org/appengine"
    "google.golang.org/appengine/image"
    "google.golang.org/appengine/blobstore"
)

func init() {
    http.HandleFunc("/photo", photoHandler)
}

func photoHandler(w http.ResponseWriter, r *http.Request) {

    c := appengine.NewContext(r)
    v := r.URL.Query()
    fileName := v.Get("file")
    if (fileName == "") {
        fmt.Fprint(w, "file name is required")
    } else {
        filename := "/gs/" + fileName;
        blobKey,err := blobstore.BlobKeyForFile(c, filename)
        if (err == nil) {
            url, urlErr := image.ServingURL(c, blobKey, nil)
            if (urlErr == nil) {
                fmt.Fprint(w, url)
            } else {
                fmt.Fprint(w, urlErr)
            }
        } else {
            fmt.Fprint(w, "image does not exist")
        }
    }  
}
相关问题