在将图像上载到firebase之前调整图像大小

在将图像上载到firebase之前调整图像大小,firebase,imagemagick,firebase-storage,Firebase,Imagemagick,Firebase Storage,Firebase存储看起来非常酷且易于使用,但我想知道是否有办法在将图像上载到Firebase存储之前调整其大小,例如。,在服务器中使用ImageMagick运行进程,然后使用Firebase SDK运行上载过程,但我注意到Firebase SDK服务器没有存储功能。您也可以使用Firebase storage+上载图像,调整图像大小(使用ImageMagick或类似工具),然后将其写回Firebase存储 我有一个将这些结合使用的示例(尽管我触发了,而不是图像大小调整器) 简要说明:Fireb

Firebase存储看起来非常酷且易于使用,但我想知道是否有办法在将图像上载到Firebase存储之前调整其大小,例如。,在服务器中使用ImageMagick运行进程,然后使用Firebase SDK运行上载过程,但我注意到Firebase SDK服务器没有存储功能。

您也可以使用Firebase storage+上载图像,调整图像大小(使用ImageMagick或类似工具),然后将其写回Firebase存储

我有一个将这些结合使用的示例(尽管我触发了,而不是图像大小调整器)

简要说明:Firebase存储没有Node.js客户端,我们建议使用该库。

使用JavaScript客户端处理调整大小 我们正在使用JavaScript调整大小,它使用客户端设备处理能力来调整图像大小,效果非常好,为我们节省了空间和金钱,节省了netwrok不必要的带宽,并在大多数移动情况下为客户端节省了大量时间和金钱

我们使用的原始脚本,使用过程如下所示:

<input type="file" id="select">
<img id="preview">
<script>
document.getElementById('select').onchange = function(evt) {
    ImageTools.resize(this.files[0], {
        width: 320, // maximum width
        height: 240 // maximum height
    }, function(blob, didItResize) {
        // didItResize will be true if it managed to resize it, otherwise false (and will return the original file as 'blob')
        document.getElementById('preview').src = window.URL.createObjectURL(blob);
        // you can also now upload this blob using an XHR.
    });
};
</script>


我相信那个家伙(dcollien)应该有很多优点,所以我建议你投票支持他的答案。

至于“在上传到Firebase之前”上传,有,是吗?是的,任何语言都有很多方法。我也这么想,但我不确定,使用gcloud golang而不是node将是非常棒的。您可以随时设置对象更改通知()+Go Google应用程序引擎应用程序()来完成此操作:)好吧,知道云功能是firebase的一部分,使用nodejs实现解决方案更容易。然后如何将此blob上载到firebase?我收到一个错误:Firebase存储:索引0处的
put
中的参数无效:应为Blob或文件。如何从window.URL.createObjectURL(blob)转到可以.put()到firebase的东西?根据firebase文档,您应该能够以文件的形式上传blob的相同方式:我记得,我的实现的最终函数接受这两种方式。