在本教程中,您将使用ipfs-http-client库来实现这个功能。这个教程是在React中实现的,但应该很容易转移到其他JavaScript框架中,比如Vue、Angular或Svelte。
关于IPFS:IPFS是一种去中心化的点对点文件共享协议。有各种类型的IPFS网关可用。有些是免费的,有些则不是。一些网关提供只读访问权限,而另一些网关提供读取和写入访问权限。您还可以运行自己的IPFS网关。因为我们将上传/保存文件,所以需要选择允许我们写入访问的网关。本教程使用的网关是Infura。其他受欢迎的服务是Pinata或Fleek。
入门:如果您已经创建了一个React应用程序,则可以跳过此步骤。
首先,创建一个新的React应用程序并切换到新目录。接下来,使用NPM或Yarn安装ipfs-http-client库。
基本代码:基本功能可以用仅3行代码来概括,但本教程还将构建一个完整的UI来展示它们是如何组合在一起的。下面是使其工作的基本代码:
``` const IPFS = require('ipfs-http-client'); const ipfs = IPFS.create();
async function uploadFile() { const added = await ipfs.add(file); const fileHash = added.cid.toString(); console.log(fileHash); } ```
完整代码:现在让我们看看如何使用上面的代码在应用程序中实现文件上传功能,并实现查看图像的功能。
在您的项目中,打开src/App.js文件并使用以下代码更新它:
``` import React, { useState } from 'react'; import IPFS from 'ipfs-http-client';
function App() { const [file, setFile] = useState(null); const [fileUrl, setFileUrl] = useState('');
const ipfs = IPFS.create();
const onChange = (event) => { setFile(event.target.files[0]); };
const onClick = async () => { const added = await ipfs.add(file); const fileHash = added.cid.toString(); const url = `https://ipfs.io/ipfs/${fileHash}`; setFileUrl(url); };
return (
export default App; ```
接下来,运行应用程序。当应用加载时,您应该会看到一个文件上传按钮。文件成功上传后,您应该会看到它在UI中呈现。
来源:算力中国
最开始的数据互换协议当属BitTorrent,这也是大部分区块链技术节点中间完成沟通交流的基本协议,自然IPFS也务必必须能完成p2p的数据互换协议,IPFS在BitTorrent的根基上完成了自身BitSwap协议,该...
NFT作为区块链异构经济通证概念的鼻祖,经历了多年的沉寂,20年后终于开始接受众多应用,迄今为止,NFT已经接待了众多互联网科技巨头和文化界,众多布局应用正式启动积极发展区块链加密金融。随着NFT作品的陆续上线和交易,N...
2018年,IPFS该协议风靡矿区,掀起了疯狂的采矿浪潮,各种IPFS矿机到处遍地开花。由于主网上线的一再延迟,挖掘算法已经很久没有公布了。矿机和代币只是期货,不能真正挖掘。模仿和冒充他们项目的门槛很低,市场投资者很难。...
在我们讨论 Web3 时,多数人会马上联想到 NFT、加密资产或 DeFi。由于从 Twitter Crypto 的行动来说,这是事实。但作为一名开发人员,我真真正正有兴趣的并非这三者。实际上,我可能现阶段有 95% 的...