IPFS(InterPlanetary File System)是一种分布式的文件系统。在 IPFS 中,每个拥有公网 IP 地址的设备都可以成为网络中的节点,任何节点都可以将文件上传到网络并共享。而 ipfs-mini 则是一个基于 IPFS 的轻量级客户端,可以在浏览器端和 Node.js 环境中使用。本文将介绍 ipfs-mini 的使用方法,包括如何安装、连接到 IPFS 网络、上传文件和获取文件等操作。
安装
要使用 ipfs-mini,首先需要在项目中安装该 npm 包。可以使用以下命令进行安装:
npm install ipfs-mini
连接 IPFS 网络
使用 ipfs-mini 前,需要先连接到 IPFS 网络。可以使用以下代码来连接到 IPFS 网络:
const ipfsMini = require('ipfs-mini'); const ipfs = new ipfsMini({ host: 'ipfs.infura.io', port: 5001, protocol: 'https' });
其中,host
参数为 IPFS 网络地址,port
参数为 IPFS 网络端口,protocol
参数为通讯协议。在上面的示例中,使用的是 IPFS 官方提供的公共网关地址 https://ipfs.infura.io
。
上传文件
使用 ipfs-mini 可以快速在 IPFS 网络中上传文件,例如:
const content = 'Hello, IPFS!'; ipfs.add(content, (err, hash) => { console.log(hash); });
上述代码可以将字符串 Hello, IPFS!
上传到 IPFS 网络中,并输出文件的哈希值。如果要上传文件,则可以使用以下代码:
const fs = require('fs'); const content = fs.readFileSync('test.txt'); ipfs.add(content, (err, hash) => { console.log(hash); });
上述代码将读取指定目录中的文件 test.txt
,并将其上传到 IPFS 网络中。
获取文件
使用 ipfs-mini 可以根据文件的哈希值在 IPFS 网络中获取指定的文件,例如:
const hash = 'QmZMxirq99NNM1wFSTYvfDUPcwzss54hsRW3q3mLd8J6X9'; ipfs.cat(hash, (err, data) => { console.log(data.toString()); });
上述代码可以通过指定的哈希值获取文件并输出文件内容。如果要将获取到的二进制数据保存为文件,则可以使用以下代码:
const fs = require('fs'); const hash = 'QmZMxirq99NNM1wFSTYvfDUPcwzss54hsRW3q3mLd8J6X9'; ipfs.cat(hash, (err, data) => { fs.writeFileSync('test.txt', data); });
上述代码将获取到的二进制数据保存为文件 test.txt
。
总结
通过本文的介绍,学习了如何使用 ipfs-mini 在 IPFS 网络中上传文件和获取文件。使用 ipfs-mini 可以快速构建 IPFS 应用,并实现分布式存储和共享等功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/72699