Kubernetes中通过python api访问IPFS服务

原创
2018/09/10 15:16
阅读数 1.7K

IPFS是一个分布式的全球一致性(参见 HT与分布式一致性 )文件系统,结合了BT、P2P、DHT等的优势。之前的帖子中,介绍了将IPFS部署到Kubernetes集群,以及通过portforward开放IPFS服务的方法。目前IPFS已经提供了python api,可以访问集群中的IPFS服务。

基础服务准备

安装ipfsapi库

pip install ipfsapi

访问IPFS服务

# 引用ipfsapi
import ipfsapi

# 连接到IPFS管理服务

# 如果是集群外运行,但与集群在同一台主机。
# api为返回的客户端对象,可以使用help(api)查看其接口。
# api = ipfsapi.connect('127.0.0.1', 5001)

# 如果是在集群的pod运行,使用内部域名访问服务。
# 我在Kubernetes中的Jupyter上运行,连接成功。
api = ipfsapi.connect('ipfs2-ipfs.ipfs2', 5001)

# 获取peers的列表。
# api.swarm_peers()返回Dict对象,Key为Peers,value为列表。
PeerList = api.swarm_peers()["Peers"]

# 显示Peers的总数,会根据网络随时变化。
len(PeerList)

# 显示全部Peer的列表。
print(PeerList)

显示部分Peers的信息:

for i in range(3):
    print(PeerList[i])

输出如下:

{'Addr': '/ip4/1.24.210.4/tcp/4001', 'Peer': 'QmZgbW9VNA4EJoxuReUmXZNszHqurheeqNQvZ671kdbYLg', 'Latency': '', 'Muxer': '', 'Streams': None}
{'Addr': '/ip4/100.34.210.63/tcp/39733', 'Peer': 'QmPRa5sovWPGhSDuEGU2cgfws5ra91bD89xTWmArJxickp', 'Latency': '', 'Muxer': '', 'Streams': None}
{'Addr': '/ip4/100.38.242.117/tcp/10238', 'Peer': 'QmXdgmKZYNmybYY33J7UFTuqFdvndEbWY2PdDcHuteqvyj', 'Latency': '', 'Muxer': '', 'Streams': None}

可以通过上面的方式查看IPFS支持的各种信息,包括添加文件、下载文件等等。

调试完成后,可以写入脚本,进一步放到定期任务中调度执行(参见 ubernetes Jobs - 运行处理任务指南 )。

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部