简体   繁体   English

使用Skipper和Sails上传流时,写缓冲区导致路径错误

[英]Write buffer results in path error when uploading a stream with Skipper and Sails

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 TypeError:路径必须是字符串或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)
          });
        });
      });
    });
  });

I think your answer is here: Converting a Buffer into a ReadableStream in nodejs 我认为您的答案在这里: 在Node.js中将缓冲区转换为ReadableStream

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, () => { receiver.write(file,()=> {应该是receiver.write(stream,()=> {

But first make sure that stream is actually created as described in the link above. 但首先请确保确实按照上述链接中所述创建流。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM