【IPFS】(二) 添加文件到ipfs网络

####添加文件

在ipfs守护进程启动之后,可以使用ipfs add命令将文件添加到ipfs网络

> echo "Hello!187J3X1!" > 187J3X1.txt
> ipfs add 187J3X1.txt
added QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj 187J3X1.txt

其中QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj就是文件内容的Hash值,一旦文件内容改变,这个值就会改变。需要注意,这个值与文件名完全没有关系,它只是内容的Hash,不管文件名是什么,只要内容一样,它的Hash值就是一样的。

####本地位置

ipfs的本地存储空间在~/.ipfs,所有ipfs自身的文件和本地添加到ipfs网络的文件都存放在此目录

> ls /.ipfs
api  blocks  config  datastore  datastore_spec  keystore  repo.lock  version

从此目录下这里可以找到刚才添加的文件

 grep -rn "187J3X1"
Binary file blocks/ZF/CIQIXJZ7NCVBEU67XHWSTICDNGNRD2SIAE33W4SSDI6LZTE4PLRSZFA.data matches

####读取文件

使用ipfs cat命令可以获取添加到ipfs网络中的文件,如果文件内容就在本地,那么显示将会很快,如果是在另一个节点,那么要等本节点从网络中获得该文件内容后,才会显示

> ipfs cat QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj
Hello!187J3X1!

可以将文件内容重定向到一个文件,文件名完全不必与原来的一样,因为在ipfs网络中存储的只有内容,没有文件名

> ipfs cat QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj > recv.txt
> cat recv.txt
Hello!187J3X1!

####添加文件名信息

向ipfs网站中添加单个文件是没有文件名等信息的,通过在ipfs add命令中添加-w选项,可以将该文件的文件名和所处文件夹的信息一同添加到ipfs网络

> pwd
/home/yc/workspace/ipfs/tmp
> ipfs add -w 187J3X1.txt 
added QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj 187J3X1.txt
added Qmdjqtwaj2vFkQ4P49qbnR9ksFphkSvUEf3S5rPNDVo7Kn

与刚才仅添加一个文件不同的是,这里会得到两个Hash值,第一个QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj是文件内容的Hash值,与之前的一样,另一个Qmdjqtwaj2vFkQ4P49qbnR9ksFphkSvUEf3S5rPNDVo7Kn就是文件所处目录的信息的Hash值。

使用ipfs ls命令可以列出这种层次关系(不能使用ipfs cat)

ipfs ls -v Qmdjqtwaj2vFkQ4P49qbnR9ksFphkSvUEf3S5rPNDVo7Kn
Hash                                           Size Name
QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj 23   187J3X1.txt

可以利用目录和文件关系找到显示文件的内容


> ipfs cat Qmdjqtwaj2vFkQ4P49qbnR9ksFphkSvUEf3S5rPNDVo7Kn/187J3X1.txt
Hello!187J3X1!

####添加目录

通过在ipfs add命令中添加-r选项,可以将一个目录和其中的内容添加到ipfs网络中

> pwd
/home/yc/workspace/ipfs/tmp
> echo "My Second file" > Second_file.txt
> ls
187J3X1.txt  Second_file.txt
> ipfs add -r .
added QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj tmp/187J3X1.txt
added QmT96ZpTMV9kjtfEySjovvnfi92NxRqkogVtiwtD5Xs7rX tmp/Second_file.txt
added QmZ813ofgBrNuUpH8VFCR4A8LVkp1vSZcmxnET5PqCtj65 tmp

可以看到该命令将整个目录的内容都添加到了ipfs网络,前两个Hash值是文件,最后一个Hash值是目录。通过’ipfs ls’查看

> ipfs ls -v QmZ813ofgBrNuUpH8VFCR4A8LVkp1vSZcmxnET5PqCtj65
Hash                                           Size Name
QmRTxTkdXeUmG9GxJBA7B8Ad8hticjNwkucCY96mkzusXj 23   187J3X1.txt
QmT96ZpTMV9kjtfEySjovvnfi92NxRqkogVtiwtD5Xs7rX 23   Second_file.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值