用于分布式 Web 应用的 IPFS (InterPlanetary File System) 已经成为了一个非常流行的去中心化存储工具。它被广泛应用于去中心化应用程序的存储、交易、身份验证等功能。
本文将介绍如何在 Deno 应用中使用 IPFS 分布式文件存储,为您提供一个简单且易于理解的教程,帮助您快速上手。本文中也将展示一些示例代码,帮助您更好地理解。
环境准备
首先,我们需要安装 Deno 以及 IPFS。您可以从这里下载 Deno 的最新版本,或者使用包管理器进行安装。
$ deno install -n ipfs https://deno.land/x/ipfs-cli/ipfs-cli.js
这将安装 IPFS CLI 工具,它是与 IPFS API 进行交互的命令行工具。
初始化 IPFS
使用以下命令初始化 IPFS:
$ ipfs init
初始化过程可能需要一些时间,这取决于您的网络速度和计算机性能。完成后,您将看到一个输出,其中包含您的 IPFS ID:
$ Initialized ipfs node with version X.Y.Z $ peer identity: QmS7VfAZwvLSY7Vee5RRAVF91CTNnPPTvEgN7VMA9pzwpJ
您的 IPFS ID 可以用于识别您的节点,也可以用于分享文件和连接到其他节点。
在 Deno 应用中使用 IPFS
要在 Deno 应用程序中使用 IPFS,我们可以使用 ipfs-core 库。它是一个 JavaScript 库,它允许我们在 Deno 应用和其他 JavaScript 应用程序中使用 IPFS。
-- -------------------- ---- ------- ------ - ------ - ---- ------------ -- -- ---- -- ----- -------- ------------ - ----- ---- - ----- -------- ------- - ---------- - -- ---- ---- --- ------ ---- ------------------------- - - --- ------ ----- - ----- ---- - -------------
在上面的示例中,我们以 default 配置创建了 IPFS 实例。要更改 IPFS API 的主机和端口,我们可以使用 Addresses
对象。例如,如果您想将主机更改为本地区域网中的另一台计算机,则可以使用以下地址:
API: '/ip4/192.168.1.100/tcp/5001'
存储文件
我们可以使用 IPFS 存储任何类型的文件,包括文本、二进制、视频、音频等等。实际上,您可以将任何内容添加到 IPFS 中,并将其存储为唯一的哈希值。
下面是一些示例代码,它可以将文件添加到 IPFS 中:
-- -------------------- ---- ------- ------ - ------ - ---- ------------ ------ -- ---- ----- -- -- ---- -- ----- -------- ------------ - ----- ---- - ----- -------- ------- - ---------- - ---- ------------------------- - - --- ------ ----- - ----- ---- - ------------- -- --------- ----- ---- - ------------------------------------- -- ------ ---- - ----- -------- --------- - ----- - --- - - ----- --------------- ------------------ ---- ---- --- --------- - ----------
在上面的示例中,我们使用 fs
模块从文件系统中读取文件内容。然后,我们使用 IPFS API 的 add
方法将文件上传到 IPFS 并获取其内容标识符 (CID)。
获取和读取文件
一旦您将文件添加到 IPFS 中,就可以在任何时间使用 CID 获取它。在这个过程中,IPFS 还要通过分布式哈希表查找文件内容,并使用本地节点缓存加速结果。
以下是一些示例代码,用于获取和读取存储在 IPFS 中的文件:
-- -------------------- ---- ------- ------ - ------ - ---- ------------ -- -- ---- -- ----- ---- - ----- --------- -- -- --- ---- ----- -------- ------------ ------- - ----- ------ - ----- -------------- --- ---- - --- --- ----- ------ ----- -- ------- - ---- -- ----------------- - ----------------- -------- ---------- - -- - ---- ----- ----------------------------------------------------------
在上面的示例中,我们使用 ipfs.cat(cid)
方法获取文件。此方法将返回一个 ReadableStream,我们可以从中读取文件内容。在这个过程中,将从本地节点或网络上的其他节点获取文件内容,并将其缓存在本地节点上。
进一步学习
本文介绍了在 Deno 应用程序中使用 IPFS 的基础知识,帮助您快速开始。如果您想查看更多关于 IPFS 和 Deno 的示例,请查看以下链接:
总结
IPFS 的分布式文件存储功能对于去中心化应用程序来说至关重要。通过本文中的示例代码,您现在已经知道如何在 Deno 应用程序中使用 IPFS。希望这篇文章能够帮助您更好地理解 IPFS 和 Deno 的基础知识,并为您在构建去中心化应用时提供帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c36f8683d39b4881775386