在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:ipfs-shipyard/py-ipfs-http-client开源软件地址:https://github.com/ipfs-shipyard/py-ipfs-http-client开源编程语言:Python 99.2%开源软件介绍:py-ipfs-http-clientCheck out the HTTP Client reference for the full command reference. Note: The Note: This library occasionally has to change to stay compatible with the IPFS HTTP API. Currently, this library is tested against go-ipfs v0.8.0. We strive to support the last 5 releases of go-IPFS at any given time; go-IPFS v0.5.0 therefore being to oldest supported version at this time. Table of ContentsInstallInstall with pip: pip install ipfshttpclient Development install from Source# Clone the source repository
git clone https://github.com/ipfs/py-ipfs-http-client.git
cd py-ipfs-http-client
# Link ipfs-api-client into your Python Path
flit install --pth-file UsageBasic use-case (requires a running instance of IPFS daemon): >>> import ipfshttpclient
>>> client = ipfshttpclient.connect() # Connects to: /dns/localhost/tcp/5001/http
>>> res = client.add('test.txt')
>>> res
{'Hash': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
>>> client.cat(res['Hash'])
'fdsafkljdskafjaksdjf\n' Please note: You should specify the address for an IPFS API server, using the address of a gateway (such as the public For real-world scripts you can reuse TCP connections using a context manager or manually closing the session after use: import ipfshttpclient
# Share TCP connections using a context manager
with ipfshttpclient.connect() as client:
hash = client.add('test.txt')['Hash']
print(client.stat(hash))
# Share TCP connections until the client session is closed
class SomeObject:
def __init__(self):
self._client = ipfshttpclient.connect(session=True)
def do_something(self):
hash = self._client.add('test.txt')['Hash']
print(self._client.stat(hash))
def close(self): # Call this when your done
self._client.close() Administrative functions: >>> client.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='} Pass in API options: >>> client.pin.ls(type='all')
{'Keys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,
'Type': 'indirect'},
'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,
'Type': 'indirect'},
… Add a directory and match against a filename pattern: >>> client.add('photos', pattern='*.jpg')
[{'Hash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',
'Name': 'photos/photo1.jpg'},
{'Hash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',
'Name': 'photos/photo2.jpg'},
{'Hash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',
'Name': 'photos/photo3.jpg'}] Or add a directory recursively: >>> client.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'}] This module also contains some helper functions for adding strings and JSON to IPFS: >>> lst = [1, 77, 'lol']
>>> client.add_json(lst)
'QmQ4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'
>>> client.get_json(_)
[1, 77, 'lol'] Use an IPFS server with basic auth (replace username and password with real creds): >>> import ipfshttpclient
>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', auth=("username", "password")) Pass custom headers to the IPFS daemon with each request: >>> import ipfshttpclient
>>> headers = {"CustomHeader": "foobar"}
>>> client = ipfshttpclient.connect('/dns/ipfs-api.example.com/tcp/443/https', headers=headers) Connect to the IPFS daemon using a Unix domain socket (plain HTTP only): >>> import ipfshttpclient
>>> client = ipfshttpclient.connect("/unix/run/ipfs/ipfs.sock") DocumentationDocumentation (currently mostly API documentation unfortunately) is available on IPFS: https://ipfs.io/ipns/12D3KooWEqnTdgqHnkkwarSrJjeMP2ZJiADWLYADaNvUb6SQNyPF/docs/ The
Migrating from |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论