一种IPFS文件处理方法技术

技术编号:29133034 阅读:43 留言:0更新日期:2021-07-02 22:28
本发明专利技术提出了一种IPFS文件处理方法,涉及计算机技术领域,所述文件处理方法通过通用可读写文件系统将程序数据保存到IPFS文件,通过所述通用可读写文件系统对IPFS文件进行处理,所述通用可读写文件系统基于FUSE框架在linux系统中实现,创建可读写文件系统对象,在文件系统对象里实现FUSE的Root()接口;创建Dir对象,在Dir对象里实现FUSE的功能接口;创建File对象,在File对象里实现FUSE的获取文件属性接口、读文件接口、写文件接口;调用FUSE的Mount()函数,挂载通用文件系统;调用FUSE的Serve()函数,传入Filesystem对象,通过linux访问所述通用可读写文件系统,所有程序都可以通过这个可读写的文件系统进行文件的增删改查,程序的数据通过该文件系统保存到IPFS上,达到无缝衔接IPFS的效果。

【技术实现步骤摘要】
一种IPFS文件处理方法
本专利技术涉及计算机
,尤其涉及一种IPFS文件处理方法。
技术介绍
IPFS的英文全称为:InterPlanetaryFileSystem,中文名称:星际文件系统,本文以后内容以IPFS作为简称。IPFS是一个旨在创建持久且分布式存储和共享文件的网络传输协议。它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。它是一个开放源代码项目,自2014年开始由ProtocolLabs在开源社区的帮助下发展。其最初由JuanBenet设计。PFS作为分布式文件系统,因为其去中心化、安全、廉价、高效特点,逐渐被采用。应用在存储行业、区块链行业、边缘计算行业等。IPFS的特点之一就是以内容寻址,而且只能以内容寻址。这个地址叫做CID,CID英文名称:contentidentifier。简单来说,CID是通过对文件内容进行Hash运算,然后按照格式对运算结果进行编码而得到的一个值。通常的CID类似”QmQPeNsJPyVWPFDVHb77w8G42Fvo15z4bG2X8D2GhfbSXc“,访问文件时,这个CID作为文件路径的一部分。具体的IPFS在终端机器上的时候,只能通过IPFS提供的终端命令或者特殊的API进行文件内容的读写访问,也就是说如果现有应用程序以IPFS为存储,必须调用相应的接口进行。而通用的常规文件访问方法,无论是常见的类unix系统或者windows系统,使用的文件名和目录作为路径进行访问的。此处类unix系统泛指linux、MacOS等unix系统或者衍生系统。在类unix系统中”/a/b",代表“a“目录下的b文件。windows系统的”C:\ProgramFiles\“代表C盘目录下的”ProgramFiles“目录。这种路径和文件名规则,是现在数据存储和访问的通用规则。现有技术中存在下面的技术问题:第一:因为IPFS以CID寻址,不同于以文件名方式进行寻址,那么现有应用程序是无法直接使用IPFS进行读写操作的。第二:文件内容修改后,文件的hash值会改变,则对应的CID也发生了改变,无法通过旧CID追踪到最新的文件。
技术实现思路
本专利技术的目的在于提供一种IPFS文件处理方法,以使应用程序能按照常规文件名路径方式来读写IPFS文件系统,并且更新文件后不需要更新文件路径。本专利技术实施例提供了一种IPFS文件处理方法,通过软件实现,所述文件处理方法包括:通过通用可读写文件系统将程序数据保存到IPFS文件,通过所述通用可读写文件系统对IPFS文件进行处理;其中,所述通用可读写文件系统基于FUSE框架在linux系统中实现,具体方法包括:S001:创建可读写文件系统对象,在文件系统对象里实现FUSE的Root()接口;S002:创建目录对象,在目录对象里实现FUSE的读目录接口、查找文件接口、创建目录接口、创建文件接口、重命名接口、删除接口、获取文件属性接口;S003:创建IPFS文件对象,在IPFS文件对象里实现FUSE的获取文件属性接口、读文件接口、写文件接口;S004:调用FUSE的Mount函数,挂载通用文件系统;S005:调用FUSE的Serve函数,传入文件系统对象,通过linux访问所述通用可读写文件系统;S006:等待挂载的目录进行读写操作。进一步地,所述文件处理方法包括读取目录的方法,所述读取目录的方法包括:S101:读目录接口获得应用程序传入的目录名称;S102:根据所述目录名称,去IPFS系统中查找目录;S103:查到IPFS文件后,得到IPFS中的FSNode类型文件,判断所述文件类型是否为目录;S104:解析所述FSNode类型文件,得到所有Node列表;S105:依次读取Node列表中文件的类型和名称,组成通用的文件名返回给上层应用。进一步地,所述文件处理方法包括查找文件的方法,所述查找文件的方法包括:S201:查找文件接口获得应用程序传入的文件名;S202:根据路径名,去IPFS系统中查找文件;S203:查到IPFS文件后,得到IPFS中的FSNode类型文件;S204:解析所述FSNode类型文件,判断是目录还是文件,根据解析的内容组成通用文件格式,返回给上层调用。进一步地,创建目录的步骤包括:S301:创建目录接口获得应用程序传入的文件名;S302:根据路径名,去IPFS系统中查找文件;S303:根据文件名,调用IPFS接口创建目录;S304:调用IPFS查找文件接口,查找所述创建目录;S305:解析查找的FSNode类型文件,组成通用文件格式,返回给上层调用。进一步地,所述文件处理方法包括删除目录的方法,所述删除目录的方法包括:S401:删除目录接口获得应用程序传入的文件名;S402:根据路径名,去IPFS系统中查找文件;S403:查到IPFS文件后,得到IPFS中的FSNode类型文件;S404:解析FSNode类型文件,看文件类型是否是目录类型;S405:调用IPFS删除文件接口删除FSNode文件;S406:刷新IPFS缓存,返回成功。进一步地,所述文件处理方法包括创建文件的方法,所述创建文件的方法包括:S501:创建文件接口获得应用程序传入的文件名;S502:根据路径名,去IPFS系统中查找文件,如果查找到文件已经存在,则返回文件已存在;S503:根据文件名,调用IPFS接口创建文件;S504:调用IPFS接口,查找步骤503中的创建文件;S505:解析查找的FSNode文件,组成通用文件格式,返回给上层调用。进一步地,所述文件处理方法包括删除文件的方法,所述删除文件的方法包括:S601:接口获得应用程序传入的文件名;S602:根据路径名,去IPFS系统中查找文件;S603:查到IPFS文件后,得到IPFS中的FSNode类型文件。S604:解析FSNode文件,看文件类型是否是文件;S605:调用IPFS删除文件接口删除FSNode文件;S606:刷新IPFS缓存,返回成功。进一步地,所述文件处理方法包括重命名文件的方法,所述重命名文件的方法包括:S701:重命名接口获得应用程序传入的文件名;S702:根据路径名,去IPFS系统中查找文件;S703:查到IPFS文件后,得到IPFS中的FSNode类型文件;S704:解析所述FSNode文件,调用IPFS重命名文件接口重命名文件;S705:调用IPFS查找文件接口查找新的FSNode文件;S706:刷新IPFS缓存,返回成功。进一步地,所述文件处理方法包括读文件的方法,所述读文件的方法包本文档来自技高网
...

【技术保护点】
1.一种IPFS文件处理方法,其特征在于,所述文件处理方法包括:/n通过通用可读写文件系统将程序数据保存到IPFS文件,通过所述通用可读写文件系统对IPFS文件进行处理;/n其中,所述通用可读写文件系统基于FUSE框架在linux系统中实现,具体方法包括:/nS001:创建文件系统对象,在文件系统对象里实现FUSE的Root()接口;/nS002:创建目录对象,在Dir对象里实现FUSE的读目录接口、查找文件接口、创建目录接口、创建文件接口、重命名接口、删除接口、获取文件属性接口;/nS003:创建IPFS文件对象,在IPFS文件对象里实现FUSE的获取文件属性接口、读文件接口、写文件接口;/nS004:调用FUSE的Mount函数,挂载通用文件系统;/nS005:调用FUSE的Serve函数,传入Filesystem对象,通过linux访问所述通用可读写文件系统;/nS006:等待挂载的目录进行读写操作。/n

【技术特征摘要】
1.一种IPFS文件处理方法,其特征在于,所述文件处理方法包括:
通过通用可读写文件系统将程序数据保存到IPFS文件,通过所述通用可读写文件系统对IPFS文件进行处理;
其中,所述通用可读写文件系统基于FUSE框架在linux系统中实现,具体方法包括:
S001:创建文件系统对象,在文件系统对象里实现FUSE的Root()接口;
S002:创建目录对象,在Dir对象里实现FUSE的读目录接口、查找文件接口、创建目录接口、创建文件接口、重命名接口、删除接口、获取文件属性接口;
S003:创建IPFS文件对象,在IPFS文件对象里实现FUSE的获取文件属性接口、读文件接口、写文件接口;
S004:调用FUSE的Mount函数,挂载通用文件系统;
S005:调用FUSE的Serve函数,传入Filesystem对象,通过linux访问所述通用可读写文件系统;
S006:等待挂载的目录进行读写操作。


2.根据权利要求1所述的文件处理方法,其特征在于,所述文件处理方法包括读取目录的方法,所述读取目录的方法包括:
S101:读目录接口获得应用程序传入的目录名称;
S102:根据所述目录名称,去IPFS系统中查找目录;
S103:查到IPFS文件后,得到IPFS中的FSNode类型文件,判断所述文件类型是否为目录;
S104:解析所述FSNode类型文件,得到所有Node列表;
S105:依次读取Node列表中文件的类型和名称,组成通用的文件名返回给上层应用。


3.根据权利要求1所述的文件处理方法,其特征在于,其特征在于,所述文件处理方法包括查找文件的方法,所述查找文件的方法包括:
S201:查找文件接口获得应用程序传入的文件名;
S202:根据路径名,去IPFS系统中查找文件;
S203:查到IPFS文件后,得到IPFS中的FSNode类型文件;
S204:解析所述FSNode类型文件,根据解析的内容组成通用文件格式,返回给上层调用。


4.根据权利要求1所述的文件处理方法,其特征在于,创建目录的步骤包括:
S301:创建目录接口获得应用程序传入的文件名;
S302:根据路径名,去IPFS系统中查找文件;
S303:根据文件名,调用IPFS创建目录接口创建目录;
S304:调用IPFS查找文件接口,查找所述创建目录;
S305:解析查找的FSNode类型文件,组成通用文件格式,返回给上层调用。


5.根据权利要求1所述的文件处理方法,其特征在于,所述文件处理方法包括删除目录的方法,所述删除目录的方法包括:
S401:删除目录接口获得应用程序传入的文件名;
S402:根据路径名,去IPFS系统中查找文件;
S403:查到IPFS文件后,得到IPFS中的FSNode类型文件;
S404:解析FSNode类型文件,看文件类型是否是目录类型;
S405:调用IPFS删除文件接口删除FSNode文件。


6.根据权利要求1所述的文件处理方法,其特征在于,所述文件处理方法包括创建文件的方法,所述创建文件的方法包括:
S501:创建文件接口获得应用程序传入的文件名;
S502:根据路径名,去IPFS系统中查找文件;
S503:根据文件名,调用IPFS接口创建文件;
S504:调用IPFS查找文件接口,查找步骤503中的创建文件;

【专利技术属性】
技术研发人员:张彦斌刘亮王景伟汪照辉高江伟张世光
申请(专利权)人:芝麻链北京科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1