IPFS

575 阅读2分钟

什么是IPFS?

IPFS(InterPlanetary File System,星际文件系统),它是一种全新的超媒体文本传输协议,可以把它理解为一种支持分布式存储的网站,有人称它为区块链和 Web3 的硬盘。

IPFS 的网络存储文件,使用的是去中心化分片加密存储技术,把文件分割成了多个片段,存储在网络的各个节点上,而这些节点就是我们使用的电脑,当你下载文件的时候,或者想要打开文件的时候,IPFS 网络会自动把文件还原,给你使用、供你下载。

安装IPFS

一、节点安装

进入ipfs官网,可以使用命令行安装,也可以安装示图软件,这里我们直接下载示图软件,因为他更加的方便快捷。

IPFS Desktop 将 IPFS 节点、文件管理器、对等管理器和内容浏览器捆绑到一个易于使用的应用程序中

desktop-status.059adf67.png

安装启动之后,你就拥有了两个重要的东西一个是网关一个是API,网关用来展示数据,API用来与IPFS产生链接,发送数据。

二、JS-IPFS安装

官方JS的有两个库JS-IPFS是 IPFS 的完整实现和JS-IPFS HTTP 客户端是一个较小的库,用于控制已经通过其HTTP API运行的 IPFS 节点。官方更推荐我们使用第二个库。

在终端使用以下命令

npm install --save ipfs-http-client

使用IPFS

一、导入

import { create } from 'ipfs-http-client'

二、连接

const ipfs = create('/ip4/127.0.0.1/tcp/5001') // 此处是你的API

三、调用核心API

const { cid } = await client.add('你的文件/图片')

注意await不能进行异常的捕获,可以使用try进行异常处理

try { 
        const created = await client.add(file)
} 
catch (error) { 
        console.log(error)
}

四、拿到path

我们看看成功之后返回了什么,这是一个对象,里面有一个path属性,这个path就是我们想要的东西

image.png

让我们回顾一下,以上我们做了什么

我们使用ipfs-http-client 库提供的导入的create 函数创建了一个client 实例。然后,使用client.add 函数,我们将数据上传到IPFS。

这个动作的响应会返回一个对象,其中包含上传数据的CID。使用 [https://ipfs.infura.io/ipfs/](https://ipfs.infura.io/ipfs/)URL加上存储在created 对象上的path 密钥/对值,就可以访问到我们上传的数据。

当然也可以使用IPFS Desktop,我们安装的示图软件里面分配给我们的自己的网关进行访问