Python IPFS API 客户端库
项目描述
py-ipfs-api
弃用通知
重要提示: PIPipfsapi包和 Python 模块都已重命名为,ipfshttpclient并且该库已转换为围绕该其他库的瘦包装器。此软件包只接受关键的错误修复。有关如何进行的详细信息,请参阅新软件包的迁移说明。
本 README 的其余部分仍然是历史奇闻,将不再更新。
目录
安装
使用 pip 安装:
pip install ipfsapi
用法
基本用例(需要一个正在运行的 IPFS 守护程序实例):
>>> import ipfsapi
>>> api = ipfsapi.connect('127.0.0.1', 5001)
>>> res = api.add('test.txt')
>>> res
{'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
>>> api.cat(res['Hash'])
'fdsafkljdskafjaksdjf\n'
行政职能:
>>> api.id()
{'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='}
传入 API 选项:
>>> api.pin_ls(type='all')
{'Keys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,
'Type': 'indirect'},
'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,
'Type': 'indirect'},
…
添加目录并匹配文件名模式:
>>> api.add('photos', match='*.jpg')
[{'Hash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',
'Name': 'photos/photo1.jpg'},
{'Hash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',
'Name': 'photos/photo2.jpg'},
{'Hash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',
'Name': 'photos/photo3.jpg'}]
或者递归地添加一个目录:
>>> api.add('fake_dir', recursive=True)
[{'Hash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX',
'Name': 'fake_dir/fsdfgh'},
{'Hash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ',
'Name': 'fake_dir/test2/llllg'},
{'Hash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ',
'Name': 'fake_dir/test2'},
{'Hash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M',
'Name': 'fake_dir'}]
该模块还包含一些用于将字符串和 JSON 添加到 IPFS 的辅助函数:
>>> lst = [1, 77, 'lol']
>>> client.add_json(lst)
'QmQ4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'
>>> client.get_json(_)
[1, 77, 'lol']
文档
IPFS 上提供了文档(不幸的是,目前主要是 API 文档):
https://ipfs.io/ipns/QmZ86ow1byeyhNRJEatWxGPJKcnQKG7s51MtbHdxxUddTH/Software/Python/ipfsapi/
ipfs 命令行客户端文档在某些情况下也可能有用。
重要变化从ipfsApi 0.2.x
- Python 包已重命名
ipfsApi为ipfsapi - PIP 模块已重命名
ipfs-api为ipfsapi(请更新您的需求文件) - 内部代码有很多变化
- 命令已完全删除
- 从现在开始,使用
requests或其他库被视为实现细节
- 库的大部分部分(除了
Client())现在被认为是内部的,因此可能随时中断(参考)- 我们将尽量减少这些模块的损坏
- 如果您需要稳定某些功能,请打开相关功能的问题和您收到的用例
- 引发的异常已经完全改变,现在记录在案,保证向后兼容性(参考)
- 新
ipfsapi.connect()功能允许创建Client实例,同时还检查兼容的 IPFS 守护程序实例是否实际可用 - 现在的方法
Client()具有选项参数
特色项目
当前使用 py-ipfs-api 的项目。如果您的项目不在这里,请随时提交 PR 以添加它!
- git-remote-ipfs允许用户从 IPFS 网络推送和拉取 git 存储库。
- InterPlanetary Wayback接口 Web 存档 ( WARC ) 文件,用于使用 IPFS 进行分布式索引和重放。
贡献
国税局
如果您有任何建议或问题,或者您只想讨论 IPFS 和 python,请#ipfs在chat.freenode.net上加入我们的 IRC 。
错误报告
您可以使用GitHub 问题跟踪器提交错误报告。
拉取请求
欢迎请求请求。在提交新的拉取请求之前,请确保您的代码通过了代码格式检查:
$ tox -e codestyle
和单元测试:
$ tox
pre-commit您可以通过安装钩子来安排在每次提交之前自动运行代码样式测试:
$ ./tools/pre-commit --install
请确保包含针对新功能或行为更改的新单元测试。
执照
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
ipfsapi-0.4.4.tar.gz
(33.5 kB
查看哈希)
内置分布
ipfsapi-0.4.4-py2.py3-none-any.whl
(32.3 kB
查看哈希)