Django的IPFS存储后端。

django-ipfs-storage的Python项目详细描述


存储Django file-uploadsInterplanetary File System上。

上传被添加并固定到配置的ipfs节点,该节点返回 ipfs内容id(内容的散列)。这个散列就是 已保存到数据库中。重复的内容也将具有相同的 地址,节省磁盘空间。

因此,只支持创建和读取文件。

其他ipfs用户通过其独特的 内容标识。不同分布的(即普通http)用户可以访问 通过http→ipfs网关上传。

安装

pip install django-ipfs-storage

配置

默认情况下,ipfs_storage将内容添加并固定到ipfs守护进程 在本地主机上运行并返回指向公共 https://ipfs.io/ipfs/http网关

要自定义此项,请在settings.py中设置以下变量:

  • IPFS_STORAGE_API_URL:默认为 'http://localhost:5001/api/v0/'
  • IPFS_GATEWAY_API_URL:默认为'https://ipfs.io/ipfs/'

IPFS_GATEWAY_API_URL设置为'http://localhost:8080/ipfs/'设置为 通过本地守护进程的http网关提供内容。

用法

有两种方法可以使用django存储后端。

作为默认后端

使用ipfs作为Django’s default file storage backend

# settings.pyDEFAULT_FILE_STORAGE='ipfs_storage.InterPlanetaryFileSystemStorage'IPFS_STORAGE_API_URL='http://localhost:5001/api/v0/'IPFS_STORAGE_GATEWAY_URL='http://localhost:8080/ipfs/'

对于特定的文件字段

或者,您可能只想将ipfs存储后端用于 单个字段:

fromdjango.dbimportmodelsfromipfs_storageimportInterPlanetaryFileSystemStorageclassMyModel(models.Model):# …file_stored_on_ipfs=models.FileField(storage=InterPlanetaryFileSystemStorage())other_file=models.FileField()# will still use DEFAULT_FILE_STORAGE

不要忘记要实例化的括号 InterPlanetaryFileSystemStorage()带有默认参数!

常见问题解答

为什么选择IPF?

不是我的部门。见https://ipfs.io/#why

如何确保我的上传始终可用?

我不知道。可能会考虑使用 ipfs-cluster展开 穿过几个节点?或者你可以整合 Eternum的托管固定服务。

如何备份上载?

见上文。

如何删除上载?

由于ipfs的分布式特性,任何访问一个片段的人 的内容保留一个副本,并自动为您重播,直到 从节点的本地缓存中逐出。带宽成本太高了!喝倒采 审查制度!

不幸的是,如果你试图审查自己(通常 这意味着我们所能做的就是解开内容 从您自己的ipfs节点,希望没有其他人钉住它。

如何安全地公开ipfs守护进程的api以进行远程连接?

有人请告诉我。

如何安全地公开我自己的ipfs☆http网关?

再次,见上文。

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

推荐PyPI第三方库


热门话题
java Google应用程序引擎Jsf2 welcomefilelist不工作   Java学校练习   jar如何在java应用程序中完成http请求流   java在将列表数据放入映射时遇到异常   java安卓studio谷歌前置条件   在Eclipse中使用gradle运行java项目   java CXF返回元素列表   java直线与垂线相交的精度   java将图像从磁盘加载到JSP页面   多线程在Java多线程进程中更新布尔值   java SDK目录“C:\Users\User\AppData\Local\Android\SDK”不存在   单击“确定”按钮时,java GUI登录系统不会做出反应   雅加达。网ConnectException:添加weblogicapplication后。xml   在两个用户定义的点之间进行java二进制搜索,返回输入的两个点之间的所有名称   需要Java IntelliJ帮助才能不读取我的文件吗   java在序列化过程中动态忽略JSON属性仅在某些情况下,对于其他api端点,不应进行过滤   java SpringBoot REST API MockMVC测试未成功创建用户,尽管在React项目中使用了相同的功能   调试java。jvisulavm中添加JMXConnection时的lang.SecurityException   基于java的web边缘检测浏览器