0

我尝试将文件推送到 IPFS,并且已转换为缓冲区。我收到此错误“ content.once 不是函数”。我在节点中使用这个库。

var Buffer = require('buffer/').Buffer;
const doc = new jsPDF();
doc.fromHTML('test',10,10);
var covnertedBuffer = Buffer.from(doc.output('arraybuffer');

然后,我将 convertBuffer 传递给 IPFS api。

任何想法?

更新测试:

我已使用下面的代码通过 API 成功将文件推送到 IPFS。

const filename = '/home/administrator/Downloads/5HP8LWKHLV.pdf';
 this.ipfsApi = ipfsApi('localhost', '5001');
    let readablestream = fs.createReadStream(filename);
    readablestream.on('readable', () => {
      let result = readablestream.read();
      console.log(result);
      if (result) {
        this.ipfsApi.files.add(result, function(err, files) {
          if (err) {
            res.json('err');
            console.log(err);
          }
          res.json(files);
        });
      }
    });

但是,当我从 doc.output 获取 arrayBuffer 并转换为 Buffer 对象并推送到 IPFS 时,它失败了。请看下文。

 var _buffer = Buffer.from(req.buffer);
    console.log('Converted to buffer:' + _buffer);
    this.ipfsApi = ipfsApi('localhost', '5001');
    this.ipfsApi.files.add(_buffer, function(err, files) {
      if (!err) {
        res.status(500);
        console.log(err);
      } else {

        res.json(files);
        res.status(200);
      }
    });

谢谢

4

1 回答 1

2

在执行 ipfs push 之前将 Buffer.from(your_buffer) 添加到缓冲区。

ipfs.files.add(Buffer.from(put_your_buffer_here), (error, result) => {
      if(error) {
        console.error(error)
        return
      }
      console.log("upload is successful");

  });
于 2020-08-28T19:16:37.263 回答