Skip to main content

Python IPFS API 客户端库

项目描述

py-ipfs-api

符合标准自述文件

Python IPFS HTTP 客户端库

弃用通知

重要提示: 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 包已重命名ipfsApiipfsapi
  • PIP 模块已重命名ipfs-apiipfsapi(请更新您的需求文件)
  • 内部代码有很多变化
    • 命令已完全删除
    • 从现在开始,使用requests或其他库被视为实现细节
  • 库的大部分部分(除了Client())现在被认为是内部的,因此可能随时中断(参考
    • 我们将尽量减少这些模块的损坏
    • 如果您需要稳定某些功能,请打开相关功能的问题和您收到的用例
  • 引发的异常已经完全改变,现在记录在案,保证向后兼容性(参考
  • ipfsapi.connect()功能允许创建Client实例,同时还检查兼容的 IPFS 守护程序实例是否实际可用
  • 现在的方法Client()具有选项参数

特色项目

当前使用 py-ipfs-api 的项目。如果您的项目不在这里,请随时提交 PR 以添加它!

贡献

国税局

如果您有任何建议或问题,或者您只想讨论 IPFS 和 python,请#ipfschat.freenode.net上加入我们的 IRC 。

错误报告

您可以使用GitHub 问题跟踪器提交错误报告。

拉取请求

欢迎请求请求。在提交新的拉取请求之前,请确保您的代码通过了代码格式检查:

$ tox -e codestyle

和单元测试:

$ tox

pre-commit您可以通过安装钩子来安排在每次提交之前自动运行代码样式测试:

$ ./tools/pre-commit --install

请确保包含针对新功能或行为更改的新单元测试。

执照

此代码是根据MIT 许可条款分发的。可以在此存储库中的文件 LICENSE中找到详细信息。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

ipfsapi-0.4.4.tar.gz (33.5 kB 查看哈希

已上传 source

内置分布

ipfsapi-0.4.4-py2.py3-none-any.whl (32.3 kB 查看哈希

已上传 py2 py3