Читать поток не делает ошибок стрельбы / перехвата - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь создать поток чтения, чтобы использовать функцию потока загрузки Cloudinary, я также использую resumable. js для разбиения исходного файла на части, в то время как поток создания чтения работает отлично (так как весь файл записывается идеально). хорошо.) Кажется, что даже функция чтения потока / облачной загрузки не запускается и не работает молча.

router.post("/upload", (req, res, next) => {
  console.log("the params are.. ", req.body);

  resumable.post(req, function(
    status,
    filename,
    original_filename,
    identifier
  ) {
    if (status === "done") {
      let timestamp = new Date().getTime().toString();
  //stich the chunks

  var s = fs.createWriteStream(timestamp + filename);
  resumable.write(identifier, s);

  var upload_stream = cloudinary.uploader.upload_stream(
    { tags: "basic_sample" },
    function(err, image) {
      console.log();
      console.log("** Stream Upload");
      if (err) {
        console.warn(err);
      }
      console.log("* Same image, uploaded via stream");
      console.log("* " + image.public_id);
      console.log("* " + image.url);
      waitForAllUploads(timestamp + filename, err, image);
    }
  );

    fs.createReadStream(timestamp + filename)
    .pipe(upload_stream)
    .on("error", err => {
      console.log(err);
    });

  s.on("finish", function() {
    // Stream upload
    console.log("ive finished...");
    // delete chunks
    setTimeout(() => {
      resumable.clean(identifier);
    }, 1000);
  });
}
res.send(status);
  });
});

Вот ресурсы, которые я использую:

https://github.com/cloudinary/cloudinary_npm/blob/master/samples/basic/basic.js

https://github.com/mrawdon/resumable-node

1 Ответ

1 голос
/ 05 марта 2020

fs.createReadStream (отметка времени + имя файла) принимает путь к файлу, но, похоже, вы также передаете отметку времени. Кроме того, waitForAllUploads не определено. Вы можете попробовать следующий код, просто используя Node и Cloudinary, чтобы проверить его.

var upload_stream= cloudinary.uploader.upload_stream({tags: 'basic_sample'},function(err,image) {
  console.log("** Stream Upload");
  if (err){ console.warn(err);}
  console.log("* "+image.url)
});
var file_reader = fs.createReadStream('<file path>').pipe(upload_stream);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...