【问题标题】:Node.js, How to store Image from URL to Firebase Storage?Node.js,如何将图像从 URL 存储到 Firebase 存储?
【发布时间】:2019-03-10 17:49:29
【问题描述】:

我有一个图片网址。 但是这些 URL 很快就会被删除。 所以我应该将它们存储到我的服务器中。

我选择 Firebase 存储作为图像服务器。 我在 AppEngine 上有一个 Node.js。

其实我是 Node.js 的新手,Web Dev。 (我是一名 Android 开发人员。)

我找到了图片下载代码。

var fs = require('fs'),
request = require('request');

var download = function(uri, filename, callback){
  request.head(uri, function(err, res, body){
    console.log('content-type:', res.headers['content-type']);
    console.log('content-length:', res.headers['content-length']);

    request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
  });
};

download('https://www.google.com/images/srpr/logo3w.png', 'google.png', function(){
  console.log('done');
});

之后,我可以将此图片上传到 Firebase 存储中。

但在这种情况下,我认为它也将图像数据存储到 AppEngine 中,对吧? 我不想这样。 我只想将它存储到 Firebase 存储中。

我可以删除 AppEngine 上的文件。 但是有没有更明确的方法?

我认为最好的情况(我想要的)是

  1. 将图片从 URL 下载到内存中的字节数组中

  2. 并将其上传到 Firebase 存储。

我该怎么做?

【问题讨论】:

标签: node.js firebase google-app-engine firebase-storage


【解决方案1】:

@puf 在stackoverflow.com/a/18265122 给出的正确解决方案(这样您就可以防止将图片下载到应用引擎,而是使用缓冲区将图片上传到 Firebase 存储),我只会添加任何示例你可以在回调正文中查看Firebase official documentation将图片上传到Firebase存储。

var request = require('request').defaults({ encoding: null });

request.get(yourUrl, function (err, res, buffer) {
    //you can call a function (promise maybe) that will upload your picture to firebase storage
});

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 2018-06-10
    • 2021-03-14
    • 2020-12-18
    • 2019-07-24
    • 2021-02-27
    • 2018-12-22
    • 2018-12-29
    • 2015-02-28
    相关资源
    最近更新 更多