返回介绍

在 JS 中使用 IPFS

发布于 2024-06-02 01:00:05 字数 1919 浏览 0 评论 0 收藏 0

在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);
        }
    });
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文