Загрузите файлы изображений из облачного хранилища Google в хранилище IOS с помощью метеора - PullRequest
1 голос
/ 22 марта 2019

Я использую проект Meteor для загрузки изображений в облако Google с устройства iOS и загрузки этих же изображений на устройство iOS.

У меня не возникает проблем при загрузке изображений, они сохраняются в хранилище Google. Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке изображений я использую приведенный ниже код, который загружает изображения по пути сервера.

bucket.file(srcFilename).download(options);

Я хочу загрузить и сохранить изображения на устройстве iOS. Когда я попытался прочитать файл с помощью createReadStream, мое приложение застряло без какого-либо прогресса (не получая никакого обратного вызова).

  bucket.file(srcFilename).createReadStream()
  .on('error', function(err) {
    console.log("error");
  })
  .on('response', function(response) {
    // Server connected and responded with the specified status and
    console.log("response");
  })
  .on('end', function() {
    // The file is fully downloaded.
    console.log("The file is fully downloaded.");
  })

Я надеюсь, что я ничего не упускаю при загрузке изображений на устройство iOS. Я посмотрел, но не смог найти другой вариант, чтобы сделать то же самое.

Любая помощь в этом отношении очень ценится, так как я застрял в этой самой точке.

1 Ответ

0 голосов
/ 30 марта 2019

Я использовал приведенный ниже код, чтобы получить файл из облака Google и загрузить фрагменты, которые я преобразовал в двоичный формат. Затем я использовал этот двоичный формат для отображения изображения и сохранения в локальном хранилище со стороны клиента.

var chunkNew = new Buffer('');

 bucket.file(srcFilename).createReadStream().on('data', function (chunk) {
    chunkNew = Buffer.concat([chunkNew,chunk]);
  })
  .on('end', function() {
    // The file is fully downloaded.
    callback(null, chunkNew.toString('base64'));
  })

Дополнительную информацию можно найти по этой ссылке http://codewinds.com/blog/2013-08-04-nodejs-readable-streams.html, которая использует блок данных для отображения изображения в качестве буфера массива.

...