ipfs可以像传统的文件系统一样,在本地文件系统中挂载服务目录,方便用户浏览目录内容。ipfs mount指令的使用没有找到完整的教程,所以在这里写一篇文章与大家分享。
我用的是操作系统centos7.9,ipfs使用的是0.13.0
[root@ipfs study]# mkdir ipfs-test & cd ipfs-test [root@ipfs ipfs-test]# echo "This first test file" > ipfs-1.txt [root@ipfs ipfs-test]# echo "This second test file" > ipfs-2.txt [root@ipfs ipfs-test]# ipfs add -r . added QmXLe1PCnMhVBDwbuVr4tMhH62J5gjHMEiuw94cx2FM3pK ipfs-test/ipfs-1.txt added QmZWra4FQSqhkMgPPGfimntoLN7LXan2chc4Voh6WFsiHe ipfs-test/ipfs-2.txt added QmVrtr5DoFYBBc22MLe9rXWHJF9TtgcSSa9uNiZxCHGmuU ipfs-test
[root@ipfs ipfs-test]# ipfs daemon --mount Initializing daemon... go-ipfs version: 0.13.0 Repo version: 12 System version: amd64/linux Golang version: go1.18.3 ... 2022-07-04T11:12:16.596 0800 ERROR fuse/ipns ipns/ipns_unix.go:100 looking up /ipns/k51qzi5uqu5dlca4efnsxpum66zvctp8ptzr58zhre721prvr0hcmk96dqx0n9: could not resolve name 2022-07-04T11:12:16.599 0800 ERROR node node/mount_unix.go:92 error mounting: mountpoint does not exist: /ipfs 2022-07-04T11:12:16.599 0800 ERROR node node/mount_unix.go:96 error mounting: could not resolve name
根据上述操作,会出现ERROR错误,ipfs服务不能起床,这里需要发布上一步的目录IPNS。还需要在发布前创建ipfs, ipns映射目录。再执行ipfs daemon --mount,出现Daemon is ready可以认为成功。
[root@ipfs ipfs-test]# mkdir /ipfs /ipns [root@ipfs ipfs-test]# ipfs name publish --allow-offline QmVrtr5DoFYBBc22MLe9rXWHJF9TtgcSSa9uNiZxCHGmuU [root@ipfs ipfs-test]# ipfs daemon --mount [root@conflux ipfs-test]# ipfs daemon --mount Initializing daemon... go-ipfs version: 0.13.0 Repo version: 12 System version: amd64/linux Golang version: go1.18.3 ... IPFS mounted at: /ipfs IPNS mounted at: /ipns Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080 Daemon is ready
另一个终端,执行ipfs mount如果命令执行成功,将在/ipfs目录下出现QmVrtr5DoFYBBc22MLe9rXWHJF9TtgcSSa9uNiZxCHGmuU的目录,下面有第一步创建的两个文件,即挂载成功。
[root@ipfs ipfs-test]# ipfs mount IPFS mounted at: /ipfs IPNS mounted at: /ipns [root@ipfs ipfs-test]# ls /ipfs/QmVrtr5DoFYBBc22MLe9rXWHJF9TtgcSSa9uNiZxCHGmuU ipfs-1.txt ipfs-2.txt
注意直接在//ipfs没有权限检查,会报错,所以要指定挂载的目录
[root@conflux ipfs-test]# ls /ipfs/ ls: 目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录目录/目录/目录/目录/目录/目录/目录/目录/目录/目录/目录目录目录/目录目录/目录/目录/目录目录目录目录/目录目录目录目录/目录/目录/目录/目录目录目录目录目录目录目录目录目录目录目录目录/目录目录/目录/目录目录目录/目录目录目录目录/目录目录目录目录目录目录目录目录目录目录/目录/目录/目录目录目录目录目录目录目录目录目录目录目录目录目录/目录/目录目录目录目录目录目录ipfs/: 不允许操作