在js中使用IPFS

ipfs 有官方的npm包,我们可以引用它加入到现有工程。

npm install --save ipfs-api

在上传逻辑文件中如下配置:

const ipfsAPI = require('ipfs-api');
const ipfs = ipfsAPI({host: 'localhost', port: '5001', protocol: 'http'});

//    向ipfs中上传数据
ipfs.add(fs.readFileSync(path), function (err, files) {
     if (err || !files) {
         console.log(err);
     } else {
         console.log(files);
     }
 })
 //    从ipfs中获取数据
 ipfs.get(hash,function (err,files) {
     if (err || !files) {
         console.log(err);
     } else {
         console.log(files);
     }
 })

当然更方便的办法是用promise进行封装:

exports.add = (buffer) =>{
    return new Promise((resolve,reject)=>{
        try {
            ipfs.add(buffer, function (err, files) {
                if (err || !files) {
                    reject(err);
                } else {
                    resolve(files[0].hash);
                }
            })
        }catch(ex) {
            reject(ex);
        }
    })
}
exports.get = (hash) =>{
    return new Promise((resolve,reject)=>{
        try{
            ipfs.get(hash,function (err,files) {
                if (err || typeof !files) {
                    reject(err);
                }else{
                    resolve(files[0].content);
                }
            })
        }catch (ex){
            reject(ex);
        }
    });
}

results matching ""

    No results matching ""