Запись буфера приводит к ошибке пути при загрузке потока с Skipper и Sails

Я преобразовал загрузку и сохранил это как буфер. Когда я пишу этот буфер, я получаю ошибку пути.

TypeError: путь должен быть строкой или буфером

  const adapter = require('skipper-better-s3')(options);
  var receiver = adapter.receive({dirname: "/original"});

  var upstream = req.file('file');

  upstream.upload(receiver, function(err, filesUploaded){
    adapter.read(filesUploaded[0].extra.fd, (err, image) => {          

      Jimp.read(image,function(err,image){

        image.resize(600, Jimp.AUTO).quality(60).getBuffer(image.getMIME(),function(err,buffer){

          const stream = fs.createReadStream(buffer);

          receiver = adapter.receive({dirname: "/thumbs"});

          receiver.write(file, () => {
            console.log(file.extra)
          });
        });
      });
    });
  });

1 ответ

Я думаю, что ваш ответ здесь: преобразование буфера в ReadableStream в nodejs

Кроме того, проверьте свой код, но я думаю, у вас есть ошибка здесь:

      const stream = fs.createReadStream(buffer);

      receiver = adapter.receive({dirname: "/thumbs"});

      receiver.write(file, () => {
        console.log(file.extra)
      });

receive.write(file, () => {должен быть receive.write(stream, () => {

Но сначала убедитесь, что поток действительно создан, как описано в ссылке выше.

Другие вопросы по тегам