Name: py-ipfs-api
Owner: IPFS
Description: A python client library for the IPFS API
Created: 2015-09-04 00:23:43.0
Updated: 2018-01-12 16:15:55.0
Pushed: 2018-01-17 14:50:19.0
Size: 511
Language: Python
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Check out the client API reference for the full command reference.
Important: The py-ipfs-api
PIP package and Python module have both been renamed to ipfsapi
(no dash, lower-case a
).
The legacy ipfs-api
/ipfsApi
package/module will only work for IPFS 0.3.x and Python 2 and is deprecated. Please upgrade!
Note: This library constantly has to change to stay compatible with the IPFS HTTP API. Currently, this library is tested against go-ipfs v0.4.10. You may experience compatibility issues when attempting to use it with other versions of go-ipfs.
Install with pip:
install ipfsapi
Basic use-case (requires a running instance of IPFS daemon):
import ipfsapi
api = ipfsapi.connect('127.0.0.1', 5001)
res = api.add('test.txt')
res
sh': 'QmWxS5aNTFEc9XbMX1ASvLET1zrqEaTssqt33rVZQCQb22', 'Name': 'test.txt'}
api.cat(res['Hash'])
afkljdskafjaksdjf\n'
Administrative functions:
api.id()
dresses': ['/ip4/127.0.0.1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
'/ip6/::1/tcp/4001/ipfs/QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS'],
entVersion': 'go-ipfs/0.4.10',
': 'QmS2C4MjZsv2iP1UDMMLCYqJ4WeJw8n3vXx1VKxW1UbqHS',
otocolVersion': 'ipfs/0.1.0',
blicKey': 'CAASpgIwgg ... 3FcjAgMBAAE='}
Pass in API options:
api.pin_ls(type='all')
ys': {'QmNMELyizsfFdNZW3yKTi1SE2pErifwDTXx6vvQBfwcJbU': {'Count': 1,
'Type': 'indirect'},
'QmNQ1h6o1xJARvYzwmySPsuv9L5XfzS4WTvJSTAWwYRSd8': {'Count': 1,
'Type': 'indirect'},
?
Add a directory and match against a filename pattern:
api.add('photos', match='*.jpg')
ash': 'QmcqBstfu5AWpXUqbucwimmWdJbu89qqYmE3WXVktvaXhX',
ame': 'photos/photo1.jpg'},
ash': 'QmSbmgg7kYwkSNzGLvWELnw1KthvTAMszN5TNg3XQ799Fu',
ame': 'photos/photo2.jpg'},
ash': 'Qma6K85PJ8dN3qWjxgsDNaMjWjTNy8ygUWXH2kfoq9bVxH',
ame': 'photos/photo3.jpg'}]
Or add a directory recursively:
api.add('fake_dir', recursive=True)
ash': 'QmQcCtMgLVwvMQGu6mvsRYLjwqrZJcYtH4mboM9urWW9vX',
ame': 'fake_dir/fsdfgh'},
ash': 'QmNuvmuFeeWWpxjCQwLkHshr8iqhGLWXFzSGzafBeawTTZ',
ame': 'fake_dir/test2/llllg'},
ash': 'QmX1dd5DtkgoiYRKaPQPTCtXArUu4jEZ62rJBUcd5WhxAZ',
ame': 'fake_dir/test2'},
ash': 'Qmenzb5J4fR9c69BbpbBhPTSp2Snjthu2hKPWGPPJUHb9M',
ame': 'fake_dir'}]
This module also contains some helper functions for adding strings and JSON to IPFS:
lst = [1, 77, 'lol']
client.add_json(lst)
4R5cCUYBWiJpNL7mFe4LDrwD6qBr5Re17BoRAY9VNpd'
client.get_json(_)
77, 'lol']
Documentation (currently mostly API documentation unfortunately) is available on IPFS:
https://ipfs.io/ipns/QmZ86ow1byeyhNRJEatWxGPJKcnQKG7s51MtbHdxxUddTH/Software/Python/ipfsapi/
The ipfs
command-line Client documentation may also be useful in some cases.
ipfsApi 0.2.x
ipfsApi
to ipfsapi
ipfs-api
to ipfsapi
(please update your requirement files)requests
or other libraries is considered an implementation detail from now onClient()
) are now considered internal and may therefore break at any time
(reference)ipfsapi.connect()
function allows creating a Client
instance, while also checking whether a compatible IPFS daemon instance is actually availableClient()
now have parameters for optionsProjects that currently use py-ipfs-api. If your project isn't here, feel free to submit a PR to add it!
Join us on IRC at #ipfs
on chat.freenode.net if you have any suggestions or questions,
or if you just want to discuss IPFS and python.
You can submit bug reports using the GitHub issue tracker.
Pull requests are welcome. Before submitting a new pull request, please make sure that your code passes both the code formatting check:
$ tox -e codestyle
And the unit tests:
$ tox
You can arrange to run the code style tests automatically before each commit by
installing a pre-commit
hook:
$ ./tools/pre-commit --install
Please make sure to include new unit tests for new features or changes in behavior.
This code is distributed under the terms of the MIT license. Details can be found in the file LICENSE in this repository.