

IPFS操作教程4: 将文件添加到本地IPFS存储库中
通过学习本小节,使你能够:
之前的课程中,我们已经有了文件mytextfile.txt。但是最好还是按下边的pipe命令,确保你的文件内容和教程中的一样。
$ echo "chaindesk is a good IT service Community" > mytextfile.txt命令很简单,就是在命令中加上个-w,如下:
$ ipfs add -w mytextfile.txt
added QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF mytextfile.txt
added QmV2HGWGF9XY4svFxyzsjawKEnW7R65dCi6Kx9vxbowCKo 之前的教程中,我们上传文件的命令是ipfs add mytextfile1.txt,并没有-w的标签,最后返回了只是一个hash值。而这次操作,我们发现,返回了2个hash值。第一个hash值指的是文件内容对应的hash值;而第二个是上传文件后返回的目录hash,该目录下的文件就是mytextfile.txt。
命令中-w标签是让ipfs产生一个目录,该目录下的文件就是上传的文件。想要进一步了解这一块的,可以使用ipfs add --help命令获取更多的信息。
列出目录下文件的信息,使用的命令是ipfs ls。为了显示信息对应的指什么,我们将使用-v标签,以方便更好的阅读信息,操作如下:
$ ipfs ls QmV2HGWGF9XY4svFxyzsjawKEnW7R65dCi6Kx9vxbowCKo
QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF 49 mytextfile.txt
$ ipfs ls -v QmV2HGWGF9XY4svFxyzsjawKEnW7R65dCi6Kx9vxbowCKo
Hash Size Name
QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF 49 mytextfile1.txt注:获取目录信息,我们必须用ipfs ls命令,而不是ipfs cat,后者是直接获取文件内容的。如果ipfs cat 目录hash,返回的将是报错,如下:
$ ipfs cat QmV2HGWGF9XY4svFxyzsjawKEnW7R65dCi6Kx9vxbowCKo
Error: this dag node is a directory使用ipfs cat命令,而后边跟的是文件路径,操作如下:
$ ipfs cat QmV2HGWGF9XY4svFxyzsjawKEnW7R65dCi6Kx9vxbowCKo/mytextfile.txt
chaindesk is a good IT service Community将文件内容添加到IPFS存储库时,IPFS将计算文件内容的加密hash,并将该hash返回给您。然后,可以使用这个hash去引用文件的内容,并将内容从IPFS存储库中读取出来。
为了跟踪文件名和路径等信息,IPFS允许您在添加文件时“包装”目录和文件名信息。这样将会通过路径来检索IPFS存储库中的文件内容。