// 1. 安装ipfsapi
$ pip install ipfsapi
// 2. 新建python文件,test.py
// 接口类型
// a. 查看节点ID
api.id()
// b. 上传单一文件
api.add('test.txt')
// c. 上传目录
api.add('fake_dir', recursive=True)
// d. 查看文件内容
api.cat('QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22')
// e. 下载文件
api.get('QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22')
// f. 查看本地已存储的所有文件
api.pin.ls(type='all')
// 3. 运行test.py
$ python test.py
一、查看节点ID
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 查看节点ID
res = api.id()
print(res)
{'Addresses': ['/ip4/127.0.0.1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS', '/ip6/::1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS'], 'AgentVersion': 'go-ipfs/0.4.10', 'ID': 'QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS', 'ProtocolVersion': 'ipfs/0.1.0', 'PublicKey': 'CAASpgIwgg ... 3FcjAgMBAAE='}
二、上传文件
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 上传文件
res = api.add('test.txt')
print(res)
{'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
三、上传目录
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 上传目录,fake_dir是一个文件夹
res = api.add('fake_dir', recursive=True)
print(res)
[{'Hash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX', 'Name': 'fake_dir/fsdfgh'}, {'Hash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ', 'Name': 'fake_dir/test2/llllg'}, {'Hash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ', 'Name': 'fake_dir/test2'}, {'Hash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M', 'Name': 'fake_dir'}]
四、查看文件内容
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 查看文件内容
res = api.cat('QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22')
print(res)
hello ipfs!
五、下载文件
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 下载文件
res = api.get('QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22')
print(res)
hello ipfs!
六、查看本地已存储的所有文件
import ipfsapi
# 连接IPFS,需要先启动节点服务器daemon
api = ipfsapi.connect('127.0.0.1', 5001)
# 查看本地已存储的所有文件
res = api.pin.ls(type='all')
print(res)
{u'Keys': {u'QmYCvbfNbCwFR45HiNP45rwJgvatpiW38D961L5qAhUM5Y': {u'Type': u'indirect'}, u'QmXgqKTbzdh83pQtKFb19SpMCpDDcKR2ujqk3pKph9aCNF': {u'Type': u'indirect'}, u'QmejvEPop4D7YUadeGqYWmZxHhLc4JBUCzJJHWMzdcMe2y': {u'Type': u'indirect'}, u'QmZTR5bcpQD7cFgTorqxZDYaew1Wqgfbd2ud9QqGPAkK2V': {u'Type': u'indirect'}, u'QmY5heUM5qgRubMDD1og9fhCPA6QdkMp3QCwd4s7gJsyE7': {u'Type': u'indirect'}, u'QmQ5vhrL7uv6tuoN9KeVBwd4PwfQkXdVVmDLUZuTNxqgvm': {u'Type': u'indirect'}, u'QmPZ9gcCEpqKTo6aq61g2nXGUhM4iCL3ewB6LDXZCtioEB': {u'Type': u'indirect'}, u'QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn': {u'Type': u'recursive'}, u'QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv': {u'Type': u'recursive'}, u'QmTJrZ2vBWsiCR97jsJxMt9rCPqkpxXdL6pXY9QKwAA4Ww': {u'Type': u'recursive'}}}
部分参考自:https://blog.csdn.net/ns2250225/article/details/79278516