1、基本使用
ipfs init
会生成 peer identity: QmSC9dSHZT78dUVPWhnW4QDnM8b2o1enX1m3447cJeKdeL ,个人p2p身份证标识,以后经常用到。
ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/about
ipfs deamon
然后在浏览器 http://localhost:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/about
或
https://gateway.ipfs.io/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/quick-start
查看有传的所有文件
http://localhost:8080/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/
查看别人上传的图片(猫)
https://gateway.ipfs.io/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg
或
https://ipfs.io/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg
2、管理界面
先配置http头(注意官方github写的端口是3000,而ipfs默认使用的是5001)
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://localhost:5001"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
如果发现配置错误,可以重置
ipfs config --json API.HTTPHeaders {}
然后启动 ipfs deamon,之后
http://localhost:5001/webui/
会自动重定向到
http://localhost:5001/ipfs/QmQLXHs7K98JNQdWrBB2cQLJahPhmupbDjRuH1b9ibmwVa/
https://gateway.ipfs.io/ipfs/QmSC9dSHZT78dUVPWhnW4QDnM8b2o1enX1m3447cJeKdeL/1.jpg
3、修改ipfs配置
ipfs config edit
默认情况下网关对外不可访问,所以本地上传的文件,通过ipfs.io是访问不到的,可修改IP配置。
"Gateway": "/ip4/127.0.0.1/tcp/8080",
为
"Gateway": "/ip4/0.0.0.0/tcp/8080",
但即使如果,也经常不能使用公网ip如gateway.ipfs.io或ipfs.io来访问到本地文件,因为公网网关性能问题。所以最好在本地测试。
4、添加文件到ipfs
ipfs add 1.jpg
QmRUbYkptgQUhLoqSVxJjEKEbyeafrgDwS8f9nuSSAjcU2
然后浏览
http://localhost:8080/ipfs/QmRUbYkptgQUhLoqSVxJjEKEbyeafrgDwS8f9nuSSAjcU2
ipfs add 1.jpg -w 会新建一个文件夹,并在里面有一个1.jpg文件,文件名不会修改
查看帮助
ipfs add --help
5、太多连接,导致流量增多如果限制,基本是使用了4001端口进行通讯的。
修改配置全部换成本地监听,如
"Swarm": [
"/ip4/127.0.0.1/tcp/4001",
并去掉ipv6的监听(会对所有网卡监听,看防火墙上是没有跑流量的,22M都是在ipv4上的)
"/ip6/::/tcp/4001"
修改完重启ipfs daemon就可以了,不会自动跟swarm进行通讯了。相当于所有peer关闭了,执行命令 ipfs swarm peers 也不会有列表了
https://ipfs.io/docs/examples/
6、接口获取刚上传的图片
curl "http://127.0.0.1:5001/api/v0/object/get?arg=QmRUbYkptgQUhLoqSVxJjEKEbyeafrgDwS8f9nuSSAjcU2&encoding=json"
数据封闭在data里(unicode编码)
{"Links":[],"Data":""}
其他API:https://ipfs.io/docs/api/