2021-01-19 16:08:14
本文将为大家介绍如何将文件名、权限、目录等添加到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存储库中检索内容。