Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do I need the IPFS daemon to upload files from a browser?

I'm working on this project using IPFS and I'm trying to create a website that allows users to upload files directly from their browser to IPFS. My goal was that the website would be a front-end website but whenever I add a file to IPFS and I check it's hash on https://gateway.ipfs.io/ipfs/hash-here nothing happens, which made me think that the files are probably not getting uploaded to IPFS because I'm not running it on my local machine. Is this correct?

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']);

};
like image 331
ninesalt Avatar asked Oct 18 '22 07:10

ninesalt


1 Answers

Are you running a js-ipfs node in your browser? Did you get the chance to look at the examples in the examples folder in js-ipfs repo? Url here: https://github.com/ipfs/js-ipfs/tree/master/examples

If you add a file to your node and the node is on, the IPFS gateway node will be able to find the content from your browser node.

like image 106
David Dias Avatar answered Oct 19 '22 20:10

David Dias