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在这个存储库中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaBridge errno=10054被Remotehost关闭   javafx如何在每次调用方法中的变量时更新它?(爪哇)   java mod_群集在发现后未平衡负载   Java软件编辑器/语法高亮   java为什么不能强制转换数组的结果。asList()到ArrayList?   java HIBERNATE:无法使用HIBERNATE从MySQL中提取数据   java在Google地图片段上添加布局   java在AbstractTableModel中执行setValueAt之前,我如何做一些事情?   java在整个Tomcat运行时保存变量   java如何在Thymeleaf模板中获取环境变量的值?   java Selenium Chrome驱动程序针对属性的标签   java正则表达式捕获未知数量的重复组