Node.js, как сохранить изображение с URL в Firebase Storage? - PullRequest
0 голосов
/ 05 октября 2018

У меня есть URL изображения.Но эти URL могут быть удалены в ближайшее время.Поэтому я должен хранить их на своем сервере.

Я выбираю Firebase Storage в качестве сервера изображений.И у меня есть Node.js на AppEngine.

На самом деле, я новичок в 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 Storage.

Я могу удалить файл в AppEngine.Но есть ли более понятный способ?

Я думаю, что лучший случай (что я хочу) - это

  1. загрузка изображения с URL-адреса в массив байтов в памяти

  2. И загрузите его в Firebase Storage.

Как я могу это сделать?

1 Ответ

0 голосов
/ 19 апреля 2019

Правильное решение, данное на stackoverflow.com / a / 18265122 @puf (так что вы можете запретить загрузку изображения в движок приложения и вместо этого работать с буфером для загрузки изображения в Firebase Storage)Я бы добавил только те примеры, которые вы можете посмотреть в официальной документации Firebase , чтобы загрузить изображение в хранилище 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
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...