我需要IPFS守护程序从浏览器上传文件吗?

问题描述:

我正在使用IPFS在这个项目上工作,我试图创建一个网站,允许用户直接从他们的浏览器上传文件到IPFS。我的目标是,该网站将成为一个前端网站,但每当我添加一个文件到IPFS,并检查它的散列https://gateway.ipfs.io/ipfs/hash-here什么也没有发生,这使我认为这些文件可能没有上传到IPFS,因为我不是在我的本地机器上运行它。它是否正确?我需要IPFS守护程序从浏览器上传文件吗?

const Buffer = require('safe-buffer').Buffer; 

export default function uploadFiles(node, files) { 

    let reader = new FileReader(); 

    reader.onloadend =() => { 

     let byteData = reader.result.split('base64,')[1]; 
     let fileData = Buffer.from(byteData); 

     node.files.add(fileData, (err, res) => { 

      if (err) { 
       throw err 
      } 

      let hash = res[0].hash 
      console.log(hash); ///////prints a hash that isnt visible on 
           //gateway 

      node.files.cat(hash, (err, res) => { 
       if (err) { 
        throw err 
       } 
       let data = '' 
       res.on('data', (d) => { 
        data = data + d 
       }) 
       res.on('end',() => { 
        // console.log(data); 
        // console.log(atob(data)); 
       }) 
      }) 

     }); 

    } 

    reader.readAsDataURL(files['0']); 

}; 

你在浏览器中运行js-ipfs节点吗?你有机会看看js-ipfs repo中examples文件夹中的例子吗?网址如下:https://github.com/ipfs/js-ipfs/tree/master/examples

如果向节点添加文件并且该节点处于打开状态,则IPFS网关节点将能够从浏览器节点中查找内容。

+0

是的,我正在运行一个节点,但是当我粘贴散列在我粘贴的URL中时,页面只会永久加载并且什么都不会发生。 – ninesalt

+0

你能粘贴一个复制你的问题的片段吗? –

+0

已添加。片段处理从另一个组件上传的文件。 – ninesalt