如何将文件名和目录信息添加到IPFS

2021-01-19 16:08:14

本文将为大家介绍如何将文件名、权限、目录等添加到IPFS

  本文将为大家介绍以下几点:

  •将文件添加到IPFS,包括文件名,权限等。

  •将目录添加到IPFS

  •说明IPFS如何表示具有相同内容的两个文件

  •使用包含文件的目录的哈希从IPFS读取内容


IPFS


  步骤如下:


  第1步:创建要添加的文件

  创建一个名为mytextfile.txt的文件,并将文本“我的文本的版本1”放入其中。在命令行上执行此操作的一种简单方法是使用以下命令:

  $ echo "version 1 of my text" > mytextfile.txt


  步骤2:将文件添加到IPFS

  $ ipfs add -w mytextfile.txt

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

  added QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w

  在上一课中,当我们ipfs add mytextfile.txt不带-w标志运行时,IPFS仅返回一个哈希。这次返回了两个哈希值。第一个哈希QmZtmD2...与以前相同,即文件内内容的哈希。第二个散列QmPvaEQF...是ipfs“包装”在我们的内容周围的目录和文件名信息的散列。

  在接下来的步骤中,我们将使用ipfs命令查看该目录和文件名信息的外观以及如何使用它。


  步骤3:列出目录信息

  该-w标志告诉ipfs包括目录和文件名信息以及内容-它“将文件包装在目录中”。有关此的更多信息,请运行ipfs add --help并阅读那里的说明。

  要列出此目录和文件名信息,请使用ipfs ls。我们将使用该-v标志来包含标题信息。要了解有关此命令的更多信息,请运行ipfs ls --help

  $ ipfs ls -v QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w

  Hash                                           Size Name

  QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy 29   mytextfile.txt

  此命令ipfs ls QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w翻译为“列出由哈希为QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w的目录引用的文件”。

  响应显示目录包含一个文件“ mytextfile.txt”,该文件内容的哈希为 QmZtmD2q...

  请注意,我们必须使用ipfs ls而不是ipfs cat读取此信息,因为它是一个目录。如果尝试使用读取目录ipfs cat,则会出现错误:

  $ ipfs cat QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w

  错误:此dag节点是一个目录


  步骤4:使用父目录的哈希读取文件的内容

  我们可以使用目录的哈希读取文件的内容,如下所示:

  $ ipfs cat QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w/mytextfile.txt

  version 1 of my text

  此命令翻译为“返回在mytextfile.txt其哈希为QmPvaEQFVvuiaYzkSVUp23iHTQeEUpDaJnP8U7C3PqE57w的目录中引用的内容”


  奖励步骤

  一些尝试:

  1、创建包含多个文件的目录。告诉ipfs递归添加目录及其所有文件。

  2、创建两个具有相同内容的不同文件。将它们都添加到ipfs中,ipfs add -w并在构建目录和文件名信息时确认ipfs正在重新使用该内容的哈希。


  说明

  当您将文件添加到IPFS存储库中时,ipfs会计算文件内容的加密哈希,然后将该哈希返回给您。然后,您可以使用哈希引用文件的内容,并将其从ipfs存储库中读回。

  为了跟踪诸如文件名和路径之类的信息,ipfs允许您将目录和文件名信息“包装”在已添加的文件内容周围。该目录和文件名信息具有其自己的哈希,这使得可以使用由哈希,文件名和目录名组成的“ ipfs路径”从ipfs存储库中检索内容。


最新推荐