python sdk允许python开发人员将文件安全地上传和下载到ipfs,使用nucypher网络中的密钥对数据进行端到端加密。
nucypher-ipfs的Python项目详细描述
Nucpher IPF
这个python sdk允许python开发人员实验nucypher网络安全地将文件上传和下载到ipfs。
安装
使用pip安装:
pip install nucypher-ipfs
如果遇到连接模块问题,可能会导致重复的依赖项,请通过
pip uninstall ipfs-api ipfsapi
pip install ipfsapi
用法
要使用它,必须首先导入它并指定ursula的运行实例的主机名和端口:
>>> import nucypher_ipfs
>>> client = nucypher_ipfs.connect_ursula("https://localhost:9151")
此当前版本通过api连接到infura的公共ipfs网关,因此不需要设置额外的ipfs主机。
现在您有了一个客户机实例,您可以从服务发出请求并处理响应。首先,我们显然需要获取收件人的公钥,或者我们可以从以下位置生成一个新密钥:
>>> recipient_privkeys, recipient_pubkeys = client.generate_recipient_keys()
数据所有者需要策略公钥才能加密属于策略的数据:
>>> policy_pubkey = client.generate_owner_policy_public_key(max_days=5)
指定要上载到IPFS网络的文件,完成后将返回加密文件的哈希值。
>>> filename = "test.txt"
>>> receipt = client.uploadFile(filename=filename , policy_pubkey=policy_pubkey)
{'data_source_public_key': ..., 'hash_key': 'Qmd9RNRiyT6SUMPpxWJoRmZMVGEEMcBaPRKY6EdUGTvaLk'}
然后,我们可以打开:
https://gateway.ipfs.io/ipfs/<your hash here>
收件人可以通过提供其公钥来取消其身份:
>>> policy_info = client.authorize(recipient_pubkeys=recipient_pubkeys, max_days=5)
一旦一切就绪,收件人现在可以解密文件并下载到本地计算机:
>>> client.downloadFile(downloadFilename="downloadFile.txt",
recipient_privkeys=recipient_privkeys,
receipt=receipt,
policy_info=policy_info)
文档
关于nucpher的更多详细信息:
https://github.com/nucypher/nucypher
许可证
此代码是根据MIT license的条款分发的。详细信息可在文件中找到 LICENSE在这个存储库中。