我需要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网关节点将能够从浏览器节点中查找内容。
是的,我正在运行一个节点,但是当我粘贴散列在我粘贴的URL中时,页面只会永久加载并且什么都不会发生。 – ninesalt
你能粘贴一个复制你的问题的片段吗? –
已添加。片段处理从另一个组件上传的文件。 – ninesalt