IPFS操作教程3: 将文件内容添加到本地IPFS存储库中,并对它进行读取
本节学习目标
将文件里的内容添加到本地IPFS存储库中 使用hash值检索到对应的数据 明白IPFS的hash值和你上传文件内容的关系 学习步骤 第一步: 创建你要添加的文件你可以上传任何类型的内容到IPFS。本教程我们使用的后缀为“.txt”的文件,但是你可以替换成其他任何文件类型,当然操作的步骤都是一样的。 我们在桌面上创建一个文件夹,命令如下: $?cd?~/Desktop$?mkdir?ipfs-tutorial$?cd?ipfs-tutorial 然后在ipfs-tutorial目录下,创建一个mytextfile.txt文件,内容是“chaindesk is a good service Community”。在终端用命令很容易的就能创建这个文件,命令如下: echo?"chaindesk?is?a?good?IT?service?Community"?>?mytextfile.txt 使用cat命令,查看文件的信息,命令如下: $?cat?mytextfile.txt chaindesk?is?a?good?IT?service?Community 第二步:添加文件内容到本地IPFS存储库命令很简单,ipfs add 文件名,操作和显示如下: $?ipfs?add?mytextfile.txt added?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF?mytextfile.txt?41?B?/?41?B?[=========================================================]?100.00% 保存QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF。这个很长的字符串就是文件内容加密后的hash值。如果文件内容发生变化,那么这个hash值也会变,但是文件内容一样,返回的hash值都是一样的。 第三步:从本地IPFS存储库中读取内容读取的命令很简单,和普通的cat命令类似,只不过这里用的是ipfs cat。而且cat后边跟的是hash值,而不是文件名。命令如下: $?ipfs?cat?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF chaindesk?is?a?good?IT?service?Community 需要注意的是执行ipfs add命令后返回的hash值,与文件名没有关系,只和文件里面的内容有关联。 第四步:确认:IPFS的hash指向的是文件内容,而不是文件本身当我们使用ipfs cat命令时,返回的是文件的内容,而不是文件本身。这是因为hashQmWKGV...是文件内容的hash值。我们可以测试一下,直接将内容上传到IPFS,看下效果,命令如下: $?echo?"chaindesk?is?a?good?IT?service?Community"?|?ipfs?addadded?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF 你会发现,返回的hash和之前上传mytextfile.txt文件返回的hash值一样。 你可以在保证文件内容一致的情况下,不断更改文件名字,然后上传到IPFS,最终返回的hash值都是一样的。自己感兴趣的,可以测试下。 第五步:修改文件的内容,将会得到不一样的hash值更改文件mytextfile.txt里的内容,并再次上传到IPFS,将会返回不同的hash值,命令如下: $?vimytextfile.txt$?ipfs?addmytextfile.txtadded?QmWjoU6Nm3ofbiZWsZrX898uCTFEdgJJijv2CfL5dJ5C6o?mytextfile.txt 注:vi是打开并编辑文件内容。我在内容chaindesk前边加了个The,这样文件就发生变化了,然后按esc,输入:wq,退出保存。 从结果上看,返回的hash和之前的完全不一样。 第六步:从本地IPFS存储库读取内容,并使用pipe将其处理成一个文件我们可以通过ipfs cat+hash从IPFS读取hash对应的内容,并指定将内容存储到某个文件中。我们已经有了一个文件,即mytextfile.txt。接下来就使用这个文件来存储读取到的内容,命令如下: $?ipfs?cat?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF?>?mytextfile.txt $?cat?mytextfile.txtchaindesk?is?a?good?IT?service?Community$?ipfs?cat?QmWjoU6Nm3ofbiZWsZrX898uCTFEdgJJijv2CfL5dJ5C6o?>?mytextfile.txt $?cat?mytextfile.txtThe?chaindesk?is?a?good?IT?service?Community 当然你也可以创建新的文件,来存储内容: $?ipfs?cat?QmWKGV27xJZdZ9DzpFZMrU2RyFuVE6XEhUHRU7HMhvApYF?>?new 注解IPFS根据其加密hash跟踪内容。此hash唯一地标识了内容。只要内容保持不变,hash值就保持不变,但是如果内容发生变化,您将得到不同的hash值。 如果有两个包含相同内容的不同文件,IPFS将使用一个hash跟踪该内容。文件名是不同的,但内容是相同的,所以内容的hash值是相同的。 那么将会引出一个问题:怎么才能让IPFS跟踪文件名?这将是下一教程的主题。 作者:张默默区块链高级工程师、go语言工程师、IPFS早期研究者、IPFS希望社区创始人。网络著书有《IPFS一问一答》、《IPFS操作教程》、《区块链密码学》、《区块链共识算法》;跟踪并翻译报道《IPFS Weekly》,研究并翻译IPFS、Filecoin白皮书,业界知名专家学者——张默默老师! —- 编译者/作者:Online 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
IPFS操作教程3: 将文件内容添加到本地IPFS存储库中并读取
2019-10-22 Online 来源:区块链网络
LOADING...
相关阅读:
- 导读—您将从这里看到哪些真正有意义和价值的内容?2020-08-02
- 别再问Filecoin主网何时上线,开发团队官宣,主网正在逼近2020-08-01
- FIL的临近热度还有一波2020-07-31
- IPFS官方周报第98期 | ?IPFS虚拟社区聚会即将举行!2020-07-30
- 福布斯公布六大重点内容,剑指IPFS!!2020-07-30