如何将内容添加到IPFS并进行检索

2021-01-14 16:05:40

如何将文件内容添加到IPFS,使用哈希值从IPFS读取内容。

  本文将为大家介绍如何将文件内容添加到IPFS,使用哈希值从IPFS读取内容。


IPFS


  操作步骤:

  步骤1:创建一个文件,您将添加到IPFS

  您可以将任何类型的内容添加到IPFS。在本文中,我们将一些文本内容放入`.txt`文件中,但是您可以对任何内容或任何文件执行相同的过程。

  为该示例创建一个新目录将是一个好主意。导航到您喜欢放置新文件夹的位置(例如~/Desktop),然后创建一个新目录并进入该目录。这是一个示例命令:

  $ cd ~/Desktop

  $ mkdir ipfs-tutorial

  $ cd ipfs-tutorial

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

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

  您可以使用以下cat命令读取文件的内容:

  $ cat mytextfile.txt

  version 1 of my text


  步骤2:将文件添加到IPFS

  $ ipfs add mytextfile.txt

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

  保存QmZtmD2qt...ipfs返回的哈希。这是内容的加密哈希。如果文件的内容更改,则哈希将更改,但是如果文件的内容保持不变,则哈希将始终相同。


  步骤3:从IPFS中读取内容

  就像常规cat命令允许您读取文件的内容一样,该ipfs cat命令允许您读取已添加到ipfs的文件的内容。

  使用ipfs cat命令通过传递内容的加密哈希值来读取内容-这是ipfs运行时返回的哈希值ipfs add mytextfile.txt。

  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  version 1 of my text

  请注意,这将返回文件的内容,而不是文本文件本身。那是因为QmZtmD2qt...是内容的哈希,而不是文件本身。我们将在下一步中进行测试。


  步骤4:确认哈希指向内容,而不是文件

  当我们使用ipfs cat读取文件的内容,它返回的内容的文件,而不是文本文件本身。那是因为哈希QmZtmD2qt...是内容的哈希。我们可以通过直接将文本内容添加到IPFS而不用将其放入文件中来进行测试。

  $ echo "version 1 of my text" | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  哈希应与添加mytextfile.txt时获得的哈希完全相同。如果要进行三次检查,则可以根据需要多次运行每个命令。哈希值应始终相同。

  $ ipfs add mytextfile.txt

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy mytextfile.txt

  $ echo "version 1 of my text" | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  $ cat mytextfile.txt | ipfs add

  added QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy

  只要内容保持不变,您将始终获得相同的哈希值。就IPFS而言,它是相同的内容。


  步骤5:更改内容并获取其他哈希

  现在,将文本内容更改为“我的文本的版本2”,并将其添加到ipfs。您将获得不同的哈希值。

  正如我们在上一步中确认的那样,您可以将新文本直接添加到IPFS,也可以修改mytextfile.txt并将其添加到IPFS。无论哪种方式,您都会得到相同的哈希值。

  $ echo "version 2 of my text" | ipfs add

  added QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa


  步骤6:将内容从IPFS传输到文件中

  您可以从ipfs中读取此内容(任何版本)并将其写入文件。例如,您可以将mytextfile.txt的内容从“版本1”切换到“版本2”,然后根据需要进行多次返回:

  $ ipfs cat QmTudJSaoKxtbEnTddJ9vh8hbN84ZLVvD5pNpUaSbxwGoa > mytextfile.txt

  $ cat mytextfile.txt

  version 2 of my text

  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy > mytextfile.txt

  $ cat mytextfile.txt

  version 1 of my text

  您也可以将ipfs中的内容写入一个全新的文件中。

  $ ipfs cat QmZtmD2qt6fJot32nabSP3CUjicnypEBz7bHVDhPQt9aAy > anothertextfile.txt

  $ cat anothertextfile.txt

  version 1 of my text


  说明

  IPFS根据其加密哈希跟踪内容。该哈希唯一地标识了该内容。只要内容保持不变,散列就保持不变,但是如果内容完全更改,您将获得不同的散列。

  如果您有两个包含相同内容的不同文件,则IPFS将使用一个散列来跟踪该内容。文件名不同,但是内容相同,因此内容的哈希将相同。


最新推荐