我有一个图片网址。 但是这些URL可以很快删除。 所以我应该将它们存储到我的服务器中。
我选择Firebase Storage作为映像服务器。 而且我在AppEngine上有一个Node.js。
实际上,我是Web Dev的Node.js的新手。 (我是一名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上删除文件。 但是还有其他更清晰的方法吗?
我认为最好的情况是我想要的
将图像从URL下载到内存中的字节数组中
并将其上传到Firebase存储。
我该怎么做?
答案 0 :(得分:0)
@puf在stackoverflow.com/a/18265122处给出的正确解决方案(因此您可以防止将图片下载到App Engine,而是使用缓冲区将图片上传到Firebase Storage),我只会添加您可以查看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
});