python ipfs api客户端库
ipfsapi的Python项目详细描述
py ipfs api
折旧通知
重要信息:已将ipfsapi
pip包和python模块重命名为ipfshttpclient
,并且此库已转换为另一个库周围的薄包装。此软件包只接受关键的错误修复。有关如何继续的详细信息,请参见migration notes on the new package。
此自述文件的其余部分将作为历史珍品保留,不再更新。
目录
安装
使用pip安装:
pip install ipfsapi
用法
基本用例(需要ipfs守护进程的运行实例):
>>>importipfsapi>>>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'}]
该模块还包含一些帮助函数,用于向ipfs添加字符串和json:
>>>lst=[1,77,'lol']>>>client.add_json(lst)'QmQ4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'>>>client.get_json(_)[1,77,'lol']
文档
文档(目前主要是api文档,不幸的是)可在ipfs上获得:
https://ipfs.io/ipns/QmZ86ow1byeyhNRJEatWxGPJKcnQKG7s51MtbHdxxUddTH/Software/Python/ipfsapi/
在某些情况下,ipfs
command-line Client documentation也可能有用。
来自ipfsApi 0.2.x
的重要变化
- python包已从
ipfsApi
重命名为ipfsapi
- pip模块已从
ipfs-api
重命名为ipfsapi
(请更新您的需求文件) - 内部代码有很多变化
- 命令已完全删除
- 从现在起,使用
requests
或其他库被视为实现细节
- 库的大多数部分(除了
Client()
)现在被认为是内部的,因此可能随时中断 (reference)- 我们将尽量使这些模块的破损率保持在最小值
- 如果您需要某些功能的稳定性,请打开有关功能的问题和您以前的用例
- 引发的异常已完全更改,现在已记录下来,并保证向后兼容 (reference)
- 新的
ipfsapi.connect()
函数允许创建一个Client
实例,同时还检查兼容的ipfs守护进程实例是否实际可用 Client()
中的方法现在具有选项的参数
特色项目
当前使用py ipfs api的项目。如果你的项目不在这里,请随时提交一个公关添加它!
- git-remote-ipfs允许用户从ipfs网络推送和拉取git存储库。
贡献
IRC
如果您有任何建议或问题,请在#ipfs
的chat.freenode.net加入我们的IRC,
或者你只是想讨论ipfs和python。
错误报告
您可以使用GitHub issue tracker提交错误报告。
拉取请求
欢迎拉取请求。在提交新的请求之前,请 确保您的代码通过了code formatting检查:
$ tox -e codestyle
单元测试:
$ tox
您可以安排在每次提交之前自动运行代码样式测试
安装一个pre-commit
挂钩:
$ ./tools/pre-commit --install
请确保在 行为。
许可证
这段代码是根据MIT license的条款发布的。详细信息可在文件中找到 LICENSE在这个存储库中。