- ipfs init
本地运行ipfs系统前,需要创建一个本地节点,由ipfs init,默认是$HOME目录下生成.ipfs目录。需要自定义路径时,通过$IPFS_PATH实现
echo 'export IPFS_PATH=$HOME/ipfsrepo' >> ~/.bash_profile
. ~/.bash_profile
ipfs init
输出结果
initializing IPFS node at $HOME/ipfsrepo
generating 2048-bit RSA keypair...done
peer identity: QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV
to get started, enter:
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
$IPFS_PATH目录下有很多文件,其中config有许多配置选项。
2. Ipfs id
查看当前节点,输出结果
{
"ID": "QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV",
"PublicKey": "CAASpgIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKcfrSR96n5DGeZxpziEMB+N5Ub9a4T7iO9/8GsfvajUhYBSGdZW4WBxynS+7uEQMq4zPsSXulVaQ2I5hJh90adOHD1/etJO2K3IxQiYkXRZYA3kJElpU/cwFkfb3B3yoLvxqO+TSbnp3okTp74lGPBKyzT0CdpBsTLzBh5e58Jd/6etQIYVVGY9C8X+/fxJcit+wROmqAxPlBAcQpvSamBs0sZnzrxhQ+xsn/cODIVkwRJLwJgPGwJ/NN4kWalUMRsy+7V2A4XhFbHTBZFBoZiLeNv3AdCUoDomk6yLLPcmJq+c7T8MvJx6mrnzcGqTGsFu8Y/ZD+79vQYIGYJoYlAgMBAAE=",
"Addresses": null,
"AgentVersion": "go-ipfs/0.4.18/",
"ProtocolVersion": "ipfs/0.1.0"
}
- ipfs daemon
启动节点,命令提示符窗口被锁定
此时webUI会启动,可以在浏览器里面输入 http://localhost:5001/webui ,就可以看到本机节点及状态了。 - ipfs add
上传操作
#上传文件
ipfs add file
#上传文件夹
ipfs add –r dir
- ipfs cat
查看文件
ipfs cat QmHash
ipfs cat dir的QmHash/file
#或
ipfs cat file
#或
ipfs cat /ipfs/dir的QmHash/file
常配合 ‘>’ (输出重定向) 下载文件
ipfs cat QmHash > file
- ipfs ls
查看文件夹
ipfs ls QmHash
- ipfs get
下载数据
ipfs get QmHash
ipfs get QmHash -o file
- -a : 打包成tar格式
- -C : 压缩成gz格式
- ipfs files
指定files命令之后,可以使操作如同unix文件系统
- ipfs files mkdir
- ipfs files ls
- ipfs files mv
- ipfs files read
- ipfs files rm
- ipfs files stat
- ipfs files read
- ipfs files write
- ipfs name
假如add的文件或者文件夹内容发生了改变,QmHash就会发生改变。有时候希望凭借旧的信息获取已经修改的数据。IPNS可以将某个哈希与节点的ID绑定通过不变的ID去访问变化的数据。
发布到IPNS
ipfs name public QmHash
ipfs name publish QmVfgge8DzKjzPP5gR8mwn1CaRRgcST2m6Xt59fR5z2hor
输出结果
Published to QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV: /ipfs/QmVfgge8DzKjzPP5gR8mwn1CaRRgcST2m6Xt59fR5z2hor
查看节点id
ipfs id
输出结果
{
"ID": "QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV",
...
}
解析IPNS
ipfs name resolve ID
ipfs name resolve
QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV
输出结果
/ipfs/QmVfgge8DzKjzPP5gR8mwn1CaRRgcST2m6Xt59fR5z2hor
小测试,输出结果以注释形式
mkdir test
echo 'test' > test/a
ipfs add -r test
#added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH test/a
#added QmRa7xRkiLjUJtz1sQp6aqHGz3TKT2WKzpYGteiLh1kZcN test
# 5 B / 5 B [===========================================================] 100.00%
ipfs name publish QmRa7xRkiLjUJtz1sQp6aqHGz3TKT2WKzpYGteiLh1kZcN
#Published to QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV: /ipfs/QmRa7xRkiLjUJtz1sQp6aqHGz3TKT2WKzpYGteiLh1kZcN
ipfs name resolve QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV
#/ipfs/QmRa7xRkiLjUJtz1sQp6aqHGz3TKT2WKzpYGteiLh1kZcN
echo 'test2' > test/b
ipfs add -r test
#added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH test/a
#added Qmf8oj9wbfu73prNAA1cRQVDqA52gD5B3ApnYQQjcjffH4 test/b
#added QmaD5J8Xam5zLS1gQrchZqsMeFDchRHyrXDbKPSPSC7aRu test
# 11 B / 11 B [=========================================================] 100.00%
ipfs name publish QmaD5J8Xam5zLS1gQrchZqsMeFDchRHyrXDbKPSPSC7aRu
#Published to QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV: /ipfs/QmaD5J8Xam5zLS1gQrchZqsMeFDchRHyrXDbKPSPSC7aRu
ipfs name resolve QmacUZxWBGQ2FhSnjWdGcGfkkp2Cppthu5cHXRc1RBcKDV
#/ipfs/QmaD5J8Xam5zLS1gQrchZqsMeFDchRHyrXDbKPSPSC7aRu
一个节点绑定一个项目的根节点,也不是很好用。