0

I have converted an upload and stored this as a buffer. When I write this buffer I get a path error.

TypeError: path must be a string or Buffer

  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)
          });
        });
      });
    });
  });
Eli Peters
  • 406
  • 4
  • 10

1 Answers1

0

I think your answer is here: Converting a Buffer into a ReadableStream in nodejs

Also, check your code, but I thing you have an error here:

      const stream = fs.createReadStream(buffer);

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

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

receiver.write(file, () => { should be receiver.write(stream, () => {

But first make sure that stream is actually created as described in the link above.

logout
  • 621
  • 5
  • 13