CN117311631A - 文件存储方法、装置、电子设备及可读存储介质 - Google Patents
文件存储方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117311631A CN117311631A CN202311281172.6A CN202311281172A CN117311631A CN 117311631 A CN117311631 A CN 117311631A CN 202311281172 A CN202311281172 A CN 202311281172A CN 117311631 A CN117311631 A CN 117311631A
- Authority
- CN
- China
- Prior art keywords
- file
- stored
- subfiles
- subfile
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000013507 mapping Methods 0.000 claims description 59
- 239000012634 fragment Substances 0.000 description 66
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 238000012795 verification Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 239000003086 colorant Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件存储方法、装置、电子设备及可读存储介质,该方法包括:获取待存储的文件;将所述待存储的文件划分为至少两个子文件;对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种文件存储方法、装置、电子设备及可读存储介质。
背景技术
在电子设备中存在多种资源,例如应用资源、图片资源、音视频资源等,由于兼容多个运营商或者兼容多种硬件,会通过一个大而全的软件资源包存储资源文件,该软件资源包在电子设备的系统中将占用较大的存储空间,导致用户可用的存储空间紧张。
发明内容
本申请实施例提供一种文件存储方法、装置、电子设备及可读存储介质,能够解决电子设备的存储空间紧张的问题。
第一方面,本申请实施例提供了一种文件存储方法,该方法包括:获取待存储的文件;将所述待存储的文件划分为至少两个子文件;对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
第二方面,本申请实施例提供了一种文件存储装置,该装置包括:获取模块,用于获取待存储的文件;分割模块,用于将所述待存储的文件划分为至少两个子文件;存储模块,用于对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的文件存储方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的文件存储方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述文件存储方法的步骤。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,获取待存储的文件,将所述待存储的文件划分为至少两个子文件,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源,从而对于不同文件的相同部分仅存储一份文件资源,能够有效解决电子设备的存储空间紧张的问题。
附图说明
图1是本申请实施例提供的一种文件存储方法的流程示意图;
图2是本申请实施例提供的另一种文件存储方法的流程示意图;
图3是本申请实施例提供的另一种文件存储方法的流程示意图;
图4a是本申请实施例提供的另一种文件存储方法的流程示意图;
图4b是本申请实施例提供的另一种文件存储方法的流程示意图;
图5是本申请实施例提供的另一种文件存储方法的流程示意图;
图6是本申请实施例提供的一种分割后的文件的示意图;
图7是本申请实施例提供的一种文件的分片的对应关系示意图;
图8是本申请实施例提供的一种文件存储装置的结构示意图;
图9是本申请实施例提供的一种电子设备的结构示意图;
图10是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的文件存储方法、装置、电子设备及可读存储介质进行详细地说明。
图1示出本申请实施例提供的文件存储方法的流程示意图,该方法可以由电子设备执行。参见图1,该方法可以包括如下步骤:
步骤102,获取待存储的文件。其中,待存储的文件可以包括需要存储的图片、音频、视频、文档等类型的文件。
可选地,电子设备获取待存储的文件。
步骤104,将所述待存储的文件划分为至少两个子文件。
可选地,电子设备将所述待存储的文件划分为至少两个子文件。
其中,针对单个待存储的文件,将其分割为至少两个子文件,使得能够精细地分析单个待存储的文件内部的各个部分是否存在重复的内容。针对多个待存储的文件,将多个待存储的文件分割为至少两个子文件,使得能够在整个系统中大范围地分析是否存在重复的内容。
划分待存储的文件的方式可以根据文件的文件类型和应用场景确定,例如,对于较为复杂的图片文件,可以将图片分割成多个较小的图片分片,每个图像分片具有相对应的图像区域,每个图片分片包含一些必要的信息,例如哈希值、文件名、分片序号等,以便在还原图片时能够正确地拼接和组合分片。对于音频文件,可以按照一定的时间间隔或关键点,将音频文件划分为至少两个音频片段。对于视频文件,可以按照一定的时间间隔或关键帧,将视频文件划分为至少两个视频片段。
步骤106,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
可选地,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,电子设备将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
可选地,该文件资源信息可以是子文件的校验信息,该校验信息可通过校验算法计算得到,例如哈希算法等。可以理解,该文件资源信息也可以是已存储的子文件的文件标识、已存储的子文件的存储地址标识等。
在此种情况下,已分析得到由待存储的文件划分得到的子文件与已存储的子文件相匹配,避免重复存储,关联存储由待存储的文件划分得到的子文件的文件标识与已存储的子文件的文件资源信息,以使根据文件资源信息查找到已存储的子文件的文件资源。
在本申请实施例中,通过对获取的待存储的文件进行划分,得到至少两个子文件,能够针对单个待存储的文件的内部的文件内容以及针对多个待存储的文件之间的文件内容进行分析和处理,使得能够更加全面且精细地分析是否存在相同内容的文件,其中,子文件与已存储的子文件相匹配可以包括子文件与已存储的子文件相同,也可以包括子文件与已存储的子文件不完全相同,例如子文件与已存储的子文件的命名不同,但实质内容相同。然后对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,为了避免重复存储占用存储空间,关联存储由待存储的文件划分得到的子文件的文件标识与已存储的子文件的文件资源信息。从而对于不同文件的相同部分仅存储一份文件资源,能够实现避免对冗余的子文件进行存储,减少资源文件对存储空间的占用,有效解决电子设备的存储空间紧张的问题,也避免了使用压缩和删重技术影响资源文件的质量和完整性。
此外,划分存储后的资源文件,可以支持增量备份。增量备份可以备份和恢复文件的变化部分,可以提高备份和恢复的效率和速度。
在一种实现方式中,参见图2,在上述的步骤104将所述待存储的文件划分为至少两个子文件之后,所述方法还包括:
步骤108,在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息;将所述子文件的文件标识与所述子文件的文件资源信息关联存储。
在本申请实施例中,对划分待存储的文件得到的子文件与已存储的子文件进行分析后,确定已存储的子文件与划分得到的子文件都不匹配时,则关联存储该子文件的文件标识与该子文件的文件资源信息,使得能够根据该子文件的文件标识查找到对应的文件资源信息,从而能够获取该文件资源信息对应的子文件的文件资源。
在一种实现方式中,上述的步骤108在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息,可以包括:
步骤1081,在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的复杂度。
其中,复杂度可以根据子文件的不同类型选择不同的度量方式,例如像素数量、颜色数量、熵值、边缘检测等。
步骤1082,根据所述子文件的复杂度,确定所述子文件的文件资源存储类型。
其中,文件资源存储类型可以包括:代码块、向量文件。
步骤1083,根据所述子文件的文件资源存储类型确定所述子文件的文件资源信息。
例如,子文件的文件资源存储类型为代码块时,则可以通过计算代码块的哈希值确定该子文件的文件资源信息;子文件的文件资源存储类型为向量文件时,则可以通过计算向量文件的哈希值确定该子文件的文件资源信息。
在本申请实施例中,在不存在与所述子文件相匹配的所述已存储的子文件的情况下,根据确定的子文件的复杂度去确定子文件的文件资源存储类型,使得在复杂度小的情况下,可以选择通过例如代码块形式存储该子文件的文件资源,以实现节省存储空间。
在一种实现方式中,在所述子文件的文件资源信息与所述已存储的子文件的文件资源信息相匹配的情况下,判定所述子文件与已存储的子文件相匹配。
在一种实现方式中,电子设备分别确定子文件的文件资源信息与已存储的子文件的文件资源信息,在二者的相似度大于相似度阈值的情况下,判定待存储的子文件与已存储的子文件相匹配。子文件的文件资源信息与已存储的子文件的文件资源信息可以是采用相同的校验算法计算得到的校验信息,例如哈希值。
在一种实现方式中,在所述子文件的第一校验信息与所述已存储的子文件的第二校验信息相匹配的情况下,判定所述子文件与已存储的子文件相匹配。
其中,第一校验信息与第二校验信息可以是采用相同的校验算法计算得到的校验信息,例如哈希值。可以通过判断由待存储的文件划分得到的子文件的哈希值与已存储的子文件的哈希值是否相同,确定该子文件与已存储的子文件是否相匹配。通过哈希算法对子文件计算哈希值,基于哈希算法不可逆、固定长度等特点,在计算哈希值时能够有效地保证数据的完整性和一致性,并且哈希值的比较精度较高,可以检测到大部分的文件变化。
可选的,校验信息还可以包括其他信息,例如对于图片文件,可以根据图片的颜色数量和颜色类别判断多个图片文件是否相匹配。
在一种实现方式中,上述的文件存储方法还可以包括如下步骤:
步骤1,确定所述子文件的复杂度;
步骤2,根据所述子文件的复杂度,确定所述子文件的文件资源存储类型;
步骤3,根据所述子文件的文件资源存储类型确定所述子文件的第一校验信息。
其中,可以预先设定至少一个复杂度阈值,对于复杂度满足不同复杂度阈值的子文件,确定不同的文件资源存储类型。复杂度阈值可以根据实际应用进行设定,也可以对多个子文件的复杂度进行分析后确定。
在本申请实施例中,对于划分待存储的文件得到的子文件,计算确定各个子文件的复杂度,从而根据得到的复杂度以及预设的复杂度阈值,对满足不同复杂度阈值的不同子资源文件进行不同的处理,确定为不同的文件资源存储类型,然后根据子文件的文件资源存储类型确定子文件的第一校验信息,从而利用子文件的第一校验信息与已存储的子文件的第二校验信息进行比较分析,确定是否匹配,以实现快速确定由待存储的文件划分得到的子文件与已存储的子文件是否存在重复的内容。
例如,以图片格式的文件为例,预设复杂度阈值为R1和R2,在上述的子文件的复杂度小于R1的情况下,将复杂度小于R1的子文件的文件资源存储类型转换为第一文件资源存储类型,例如代码块。在上述的子文件的复杂度大于R1小于R2的情况下,将复杂度大于R1小于R2的子文件的文件资源存储类型转换为第二文件资源存储类型,例如向量文件。从而根据子文件的文件资源存储类型,如代码块、向量文件,确定子文件对应的第一校验信息。
可选的,在上述的子文件的复杂度大于R2的情况下,将复杂度满足大于R2的子文件再次进行划分,对划分得到的子文件再进行获取复杂度、以及根据复杂度是否满足预设复杂度阈值的情况,对子文件的文件资源存储类型进行转换,或者对于复杂度大于R2的子文件也可以根据压缩算法进行压缩。也可以理解为对复杂度满足不同预设复杂度阈值的子文件进行了分类,使得在对由划分待存储的文件得到的子文件与已存储的子文件进行判断是否相匹配时,能够根据子文件的复杂度,将文件资源存储类型转换为目标文件资源存储类型的子文件与已存储的目标文件资源存储类型的子文件进行比较,而不是将子文件与已存储的所有子文件进行比较,从而减少了判断是否存在与已存储的子文件相匹配的子资源文件的计算量,提高了处理效率。
图3示出了在一种实现方式中,本申请实施例提供的另一种文件存储方法的流程示意图。参见图3,该方法可以包括如下步骤:
步骤302,获取待存储的文件。
步骤304,根据所述待存储的文件的文件属性,确定所述待存储的文件的第一划分数量。
其中,待存储的文件的文件属性可以包括待存储的文件的尺寸、复杂度、占用内存大小等。
步骤306,根据所述第一划分数量将所述待存储的文件划分为所述至少两个子文件。
步骤308,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
在本申请实施例中,待存储的文件的第一划分数量可以通过待存储的文件的文件属性确定,也可以在系统中设置一个标准划分数量,也可以根据场景的不同分别设置不同的划分数量,以便于适应于不同的场景。例如,对于图片文件,可以根据图片的尺寸大小确定划分数量。对于大尺寸的图片,例如分辨率8192x8192,可以划分为较多的分片,例如4x4=16,以便在处理时能够更快地加载和渲染。对于小尺寸的图片,例如分辨率1024x1024,可以划分为较少的分片,例如3x3,以避免分片过多导致图片的质量和性能下降。
在一种实现方式中,上述的文件存储方法还可以包括:确定各个所述子文件的复杂度,在其中一个子文件的复杂度大于复杂度阈值的情况下,根据所述子文件的文件属性确定所述子文件的第二划分数量;根据所述第二划分数量将所述子文件划分为至少两个子文件。
其中,子文件的文件属性可以包括子文件的尺寸、复杂度、占用内存大小等。
在本申请实施例中,在确定各个子文件的复杂度之后,对于复杂度大于复杂度阈值的子文件还可以再次划分,具体可以根据子文件的文件属性确定第二划分数量,根据该第二划分数量对该子文件再次进行划分,然后对划分后的子文件再与已存储的子文件进行比较分析,判定该子文件与已存储的子文件是否相匹配,从而将复杂度较大的子文件进一步划分,再进行相应的存储处理,提高存储处理的效率。
可选的,在对待存储的文件进行划分之前,还可以先对系统中的各个文件进行初步处理,可以根据文件的属性信息或者文件的哈希值判断各个文件中是否存在相同的文件,对多个相同的文件的其中一个文件进行标记,将其中的不存在相同文件的第一文件和存在相同文件的第二文件中的其中一个文件作为待存储的文件进行后续的处理,使得只处理该标记的一个文件,其他与之相同的文件可以直接引用该标记的文件的处理结果,避免重复处理。
图4a示出了在一种实现方式中,本申请实施例提供的另一种文件存储方法的流程示意图。参见图4a,该方法包括如下步骤。
步骤402,获取待存储的文件。
步骤404,将所述待存储的文件划分为至少两个子文件。
步骤406,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储至所述待存储的文件的文件资源映射表。
其中,待存储的文件划分后有多个子文件,可以通过文件资源映射表存储该待存储的文件的每个子文件的文件标识与已存储的子文件的文件资源信息关联存储,从而保证了该待存储的文件的完整性。在需要加载该文件时,可以通过该文件资源映射表查找到该文件的所有子文件,能够避免划分后的子文件发生遗漏而无法再合成完整的文件。
步骤408,获取待加载的文件的文件标识。
其中,文件标识能够作为查找文件的各个子文件的依据,根据文件标识以确定与该文件标识对应的文件的文件资源映射表。
步骤410,根据所述待加载的文件的文件标识确定所述待加载的文件的文件资源映射表。
其中,文件资源映射表存储着待加载的文件的子文件的文件标识,以及子文件的文件标识相关联的已存储的子文件的文件资源信息。
步骤412,从所述待加载的文件的文件资源映射表中确定所述待加载的文件的各个子文件的文件资源信息。
其中,基于待加载的文件的文件标识以及待加载的文件的文件资源映射表中的关联存储的文件标识与已存储的子文件的文件资源信息,能够确定待加载的文件的各个子文件的文件资源信息,文件资源信息可以用于获取所述已存储的子文件的文件资源。
步骤414,根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件。
在本申请实施例中,由于在对待存储的文件进行处理再存储时,已在文件资源映射表中管理存储了待存储的文件各个子文件的文件标识与已存储的子文件的文件资源信息,从而能够在需要加载文件时,根据待加载文件的文件标识确定与该文件标识对应的待加载的文件的文件资源映射表,然后能够从该待加载的文件的文件资源映射表中确定待加载的文件的各个子文件的文件资源信息,实现在避免重复存储文件资源的情况下还能够正常加载所述待加载的文件。
在一种实现方式中,上述的步骤414根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件,可以包括:
步骤4141,根据每个子文件的文件资源存储类型解析所述子文件的文件资源信息,获得文件资源;
其中,不同的文件资源存储类型可以通过不同的解析方法进行解析以获取文件资源。例如,文件资源存储类型为代码块的子文件则可以通过运行代码块获取子文件的文件资源。又例如,文件资源存储类型为向量文件的图片,则通过将向量图转化为位图再还原为图片。
步骤4142,根据各个所述子文件的文件资源加载所述待加载的文件。
在本申请实施例中,从该待加载的文件的文件资源映射表中确定待加载的文件的各个子文件的文件资源信息之后,可以根据各个子文件的文件资源类型解析子文件的文件资源信息,以获取子文件的文件资源,从而根据子文件的文件资源加载待加载的文件。其中,可以在获取到部分子文件的文件资源时就加载待加载的文件,此时只能加载得到待加载的文件的部分内容,还可以在获取到全部子文件的文件资源时再加载待加载的文件,以获取到完整的待加载的文件。
图4b示出了在一个实施例中,以电子设备为执行主体为例,参见图4b,该文件存储方法可以包括如下步骤:
步骤420,获取待存储的文件;
步骤422,根据待存储的文件的文件属性,确定待存储的文件的第一划分数量;根据第一划分数量将待存储的文件划分为至少两个子文件;
步骤424,确定各个子文件的复杂度;在其中一个子文件的复杂度大于复杂度阈值的情况下,根据子文件的文件属性确定子文件的第二划分数量;根据第二划分数量将子文件划分为至少两个子文件;
步骤426,对于待存储的文件的每个子文件,在子文件的文件资源信息与已存储的子文件的文件资源信息相匹配的情况下,判定子文件与已存储的子文件相匹配,将子文件的文件标识与已存储的子文件的文件资源信息关联存储至待存储的文件的文件资源映射表,文件资源信息用于获取已存储的子文件的文件资源;
步骤428,在不存在与子文件相匹配的已存储的子文件的情况下,根据子文件的复杂度,确定子文件的文件资源存储类型;根据子文件的文件资源存储类型确定子文件的文件资源信息;将子文件的文件标识与子文件的文件资源信息关联存储至待存储的文件的文件资源映射表;
步骤430,获取待加载的文件的文件标识;根据待加载的文件的文件标识确定待加载的文件的文件资源映射表;
步骤432,从待加载的文件的文件资源映射表中确定待加载的文件的各个子文件的文件资源信息;根据每个子文件的文件资源存储类型解析子文件的文件资源信息,获得文件资源;根据各个子文件的文件资源加载待加载的文件。
在本申请实施例中,获取待存储的文件,将所述待存储的文件划分为至少两个子文件,对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源,从而对于不同文件的相同部分仅存储一份文件资源,能够有效解决电子设备的存储空间紧张的问题。
图5示出了本申请实施例提供的另一种文件存储方法的流程示意图。该方法可以由电子设备执行,参见图5,该方法包括如下步骤。
步骤501,建立资源文件映射表。遍历整个系统,将获取的资源文件存储在资源文件映射表中,其中可以按照预设的规则对资源文件进行分类,例如根据资源文件的类型、目录结构、修改时间等属性进行分类,具体地,例如将所有的图片文件放在一个资源文件映射表中,将所有的音频文件放在另一个资源文件映射表中。资源文件映射表中存储有各个资源文件的属性信息,具体的存储结构可以是哈希表等数据结构,以便于快速查找和比较资源文件。
在此之后,需要对资源文件进行初步处理,可以根据资源文件的哈希值等属性信息初步查找各个资源文件中相同的资源文件,将相同的资源文件中的其中一个资源文件进行标记,更新资源文件映射表,使得只对多个相同的资源文件中的一个标记的资源文件进行处理,其他资源文件引用该标记的资源文件的处理结果即可。
步骤502,将资源文件分割为多个分片。其中,可以根据资源文件的大小及复杂度确认分割份数,或者可以根据不同的应用场景预设不同的分割份数。分割后的分片包含一些必要的信息,这些信息将存储到建立的分片映射表中。例如哈希值、文件名、分片序号等,以便在还原时能够正确地拼接和组合分片。
步骤503,根据分片的信息计算分片的复杂度。其中,复杂度可以根据像素数量、颜色数量、图像熵、边缘检测等进行度量。
例如以图片文件作为资源文件为例,以分割后的分片的颜色数量度量该分片的复杂度。可以根据灰度值来计算,将分片中所有像素点的颜色转换为灰度值,然后计算灰度值的直方图,将直方图按照灰度值从小到大排序,取前n个灰度值,n即为图像的颜色复杂度。计算分片的复杂度的具体步骤包括:
步骤1,将图像中所有像素点的颜色转换为灰度值。可以使用以下公式将RGB颜色值转换为灰度值:Gray=0.299*R+0.587*G+0.114*B,其中R、G、B分别表示红、绿、蓝三个颜色通道的值,Gray表示灰度值。
步骤2,统计图像中不同灰度值的像素数量。可以使用哈希表或者其他数据结构来记录每个灰度值出现的次数。将灰度值和像素数量组成一个元素,形成一个元素数组。
步骤3,对元素数组按照灰度值从小到大排序,然后取前n个元素,n即为图像的颜色复杂度。n值的选择会影响计算结果的精度和计算速度。可以通过试验和调整来选择合适的n值,既能保证计算结果的准确性,又能提高计算速度。
步骤504,根据分片的复杂度以及复杂度阈值,对分片进行处理。根据计算后的复杂度设置复杂度阈值R1和R2,复杂度阈值可根据需求设定多个,且复杂度阈值的设定需要在对多个分片以及分片的复杂度进行分析后确定。
具体处理如下:(1)对于复杂度小于R1的分片,将其转化为代码块,并计算代码块的哈希值。(2)对于复杂度大于R1小于R2的分片,将其转化为向量图,并计算向量图的哈希值。(3)对于复杂度大于R2的分片,可以考虑再次进行分割,或者使用现有的压缩算法进行压缩,需要计算压缩后文件的哈希值。以图6为例,分片1、2、6都是纯黑色,复杂度为r1;分片3、5的复杂度为r2;分片4、7、8、9的复杂度为r3。
步骤505,生成资源文件对应的分片映射表。(1)对于复杂度小于R1的分片,遍历代码映射表,将分片的哈希值与代码映射表中已存储的分片的哈希值进行比较,如果存在相同的哈希值,则将分片的信息存入分片映射表中。如果代码映射表中不存在相同的哈希值,则需要将哈希值和对应的代码块插入到代码映射表中,并同时将分片的信息存入分片映射表中。(2)对于复杂度大于R1的分片,遍历文件映射表,将分片的哈希值与文件映射表中已存储的分片的哈希值进行比较,如果存在相同的哈希值,则将分片的哈希值存入分片映射表中。如果不存在相同的哈希值,则需要将文件保存在资源文件指定位置,并将分片的信息和分片的哈希值存入文件映射表中,同时将分片的哈希值存入分片映射表中。由此可以得到资源文件的完整分片映射表,其中包括该资源文件的所有分片信息,例如哈希值、分片序号等。将生成的资源文件对应的分片映射表存储到文件系统中,将原始的文件替换为该分片映射表。系统中还包括存储有代码块格式的分片的代码映射表,以及存储有其他格式的分片的文件映射表,代码映射表与文件映射表中只保留一份相同的分片,在后续访问调用时,根据分片映射表中的分片信息从上述两个表中查找与该分片信息对应的分片,再进行合成。分片映射表、代码映射表以及文件映射表之间的链接关系如图7所示,其中,ID0、ID1、ID2、ID3等表示分片信息,Tag0表示代码块格式的分片序号,Hash0、Hash1表示哈希值。由此可以实现根据分片映射表查找到对应资源的存储信息并且只保留一份相同的分片,减少存储空间的占用。
步骤506,获取目标资源文件的多个分片的分片信息。当电子设备的应用通过系统的应用程序接口(Application Programming Interface,API)调用资源文件时,API接会根据资源文件的唯一标识符,例如文件名,查找资源的分片映射表。分片映射表中包含了该资源文件被分成的所有分片的信息,例如分片数量、每个分片的哈希值等。API接口会自动指向资源文件的分片映射表,并根据调用程序的请求参数来确定需要获取的资源文件的分片。
步骤507,将多个分片按照分片信息还原为目标资源文件。API接口依次对分片映射表中的分片进行处理,将每个分片依次进行还原。具体的还原方式取决于采用的分片存储算法和分片存储方式。例如,如果图片文件的分片采用了代码块存储的方式,那么API接口会先根据分片映射表中的哈希值来查找对应的代码块,然后使用代码直接绘制出该分片。如果分片采用了向量图的方式存储,则API接口会将向量图转化为位图再还原为图片。在还原完成后,API接口会将还原后的资源文件回传给调用程序。还原的方式可以自定义,可以在整个资源文件还原后再回传,也可以根据应用需求只还原一部分资源文件就回传。也就是说,在访问资源文件时,不尽快与访问整个资源文件,也可以访问该资源文件的部分分片,提高了资源文件的访问速度和管理效率。
此外,本申请实施例以音频文件作为资源文件为例,提供了另一种文件存储方法,该方法包括如下步骤:
步骤1,将音频文件按照一定的时间间隔或关键点进行分段。其中,按照关键点分割为多个分片,可以使用一些自动检测算法,例如基于能量、过零率、熵值等算法,对音频文件进行分析,自动检测出关键点。
步骤2,对两个音频文件的分片分别计算哈希值,比较哈希值是否一致。将哈希值相同的多个分片只存储一个。
步骤3,在调用时从已存储的分片中查找与音频文件的唯一标识信息对应的分片合成完整分片。例如,可以从已存储的音频文件的分片中提取出特定的音频片段,例如人声、乐器演奏等,然后将它们进行组合,生成新的音频文件。
本申请实施例以视频文件作为资源文件为例,提供了另一种文件存储方法,该方法包括如下步骤:
步骤1,将视频文件按照一定的时间间隔或关键帧进行分段,得到多个视频分片。关键帧是视频中的一个静态帧,通常表示视频中一个重要的场景或事件。基于关键帧的分段方法是指将视频文件按照关键帧进行划分,每个小段的起始点为一个关键帧,终止点为下一个关键帧。
步骤2,计算各个分片进行视频复杂度,根据视频复杂度以及预设复杂度阈值对各个分片进行不同的处理。其中,可以采用熵值、块效应、运动估计等方法进行评估。(1)将视频复杂度较低的分片,即视频复杂度小于预设复杂度阈值的分片转化为代码块,可以使用一些编码库和工具,如H.264、HEVC等,将分片编码为代码块。代码块可以采用I帧、P帧、B帧等不同的编码方式进行压缩,以达到更高的压缩比和更低的复杂度。(2)对复杂度较高的分片,即视频复杂度大于预设复杂度阈值的分片进行压缩处理,可以使用一些视频压缩库和工具,如FFmpeg、Handbrake等,将分片进行压缩。压缩的效果可以通过采用不同的压缩算法和参数进行优化,以达到更高的压缩比和更低的复杂度。
步骤3,对于转化为代码块的分片,将该分片的哈希值与已存储的格式为代码块的分片的哈希值进行比较,如果哈希值相同,则存储该分片的标识符与已存储的分片的标识符之间的对应关系。如果哈希值不相同,则存储该分片。对于压缩后的分片,将该分片的哈希值与已存储的压缩后的分片的哈希值进行比较,如果哈希值相同,则存储该分片的标识符与已存储的分片的标识符之间的对应关系。如果哈希值不相同,则存储该分片。
步骤4,在调用视频文件时,根据该视频文件的属性信息,从已存储的分片中查找与该视频文件的属性信息对应的分片,将各个分片合成为原始的视频文件。
通过本申请实施例,将资源文件进行分片存储,并对各个分片进行统一的存储和管理,不仅可以减小单个文件的体积。同时,分片存储可以去除整个系统中重复的部分,减少了系统中重复文件所占用的存储空间。其次,资源分片后的处理方式较灵活,相较于普通的压缩文件,分片后可以采用更灵活的处理方式,例如转化为代码,转化为其他存储类型等,这些处理方式可以最大程度保证资源文件的质量。再者,在访问资源文件时,可以分片访问,加快访问速度。当需要访问某个资源文件时,只需要访问该文件的部分分片,而不需要访问整个文件。这样可以提高文件的访问速度和管理效率,从而提高应用程序的性能和用户体验。
需要说明的是,本申请实施例提供的文件存储方法,执行主体可以为文件存储装置。本申请实施例中以文件存储装置执行文件存储方法为例,说明本申请实施例提供的文件存储装置。
图8是根据本申请实施例提供的一种文件存储装置的结构示意图。如图8所示,该装置800包括获取模块81、分割模块82以及存储模块83。
其中,获取模块81,用于获取待存储的文件;分割模块82,用于将所述待存储的文件划分为至少两个子文件;存储模块83,用于对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
在一种实现方式中,上述的存储模块83还可以用于:在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息;将所述子文件的文件标识与所述子文件的文件资源信息关联存储。
在一种实现方式中,上述的存储模块83可以用于在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的复杂度;根据所述子文件的复杂度,确定所述子文件的文件资源存储类型;根据所述子文件的文件资源存储类型确定所述子文件的文件资源信息。
在一种实现方式中,上述的存储模块83可以用于在所述子文件的文件资源信息与所述已存储的子文件的文件资源信息相匹配的情况下,判定所述子文件与所述已存储的子文件相匹配。
在一种实现方式中,上述的装置800还可以包括第一确定模块,用于根据所述待存储的文件的文件属性,确定所述待存储的文件的第一划分数量。上述的分割模块82可以用于根据所述第一划分数量将所述待存储的文件划分为所述至少两个子文件。
在一种实现方式中,上述的装置800还可以包括第二确定模块,用于确定各个所述子文件的复杂度;在其中一个子文件的复杂度大于复杂度阈值的情况下,根据所述子文件的文件属性确定所述子文件的第二划分数量。上述的分割模块82可以用于根据所述第二划分数量将所述子文件划分为至少两个子文件。
在一种实现方式中,上述的存储模块83可以用于将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储至所述待存储的文件的文件资源映射表。
在一种实现方式中,上述的装置800还可以包括加载模块,可以用于获取待加载的文件的文件标识;根据所述待加载的文件的文件标识确定所述待加载的文件的文件资源映射表;从所述待加载的文件的文件资源映射表中确定所述待加载的文件的各个子文件的文件资源信息;根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件。
在一种实现方式中,上述的加载模块可以用于根据每个子文件的文件资源存储类型解析所述子文件的文件资源信息,获得文件资源;根据各个所述子文件的文件资源加载所述待加载的文件。
本申请实施例中的文件存储装置可以是电子设备,也可以是对电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的文件存储装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的文件存储装置能够实现图1至图5的方法实施例中实现的各个过程,为避免重复,这里不再赘述。
可选地,如图9所示,本申请实施例还提供一种电子设备900,包括处理器901和存储器902,存储器902上存储有可在所述处理器901上运行的程序或指令,该程序或指令被处理器901执行时实现上述文件存储方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图10为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。
本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图10中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器1010,用于获取待存储的文件;将所述待存储的文件划分为至少两个子文件。
存储器1009,用于对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
可选地,处理器1010,还用于在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息。存储器1009,还用于将所述子文件的文件标识与所述子文件的文件资源信息关联存储。
可选地,处理器1010,可以用于在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的复杂度;根据所述子文件的复杂度,确定所述子文件的文件资源存储类型;根据所述子文件的文件资源存储类型确定所述子文件的文件资源信息。
可选地,处理器1010,可以用于在所述子文件的文件资源信息与所述已存储的子文件的文件资源信息相匹配的情况下,判定所述子文件与所述已存储的子文件相匹配。
可选地,处理器1010,还可以用于根据所述待存储的文件的文件属性,确定所述待存储的文件的第一划分数量;根据所述第一划分数量将所述待存储的文件划分为所述至少两个子文件。
可选地,处理器1010,还可以用于确定所述子文件的复杂度;在其中一个子文件的复杂度大于复杂度阈值的情况下,根据所述子文件的文件属性确定所述子文件的第二划分数量;根据所述第二划分数量将所述子文件划分为至少两个子文件。
可选地,存储器1009,可以用于将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储至所述待存储的文件的文件资源映射表。
可选地,处理器1010,还可以用于获取待加载的文件的文件标识;根据所述待加载的文件的文件标识确定所述待加载的文件的文件资源映射表;从所述待加载的文件的文件资源映射表中确定所述待加载的文件的各个子文件的文件资源信息;根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件。
可选地,处理器1010,可以用于根据每个子文件的文件资源存储类型解析所述子文件的文件资源信息,获得文件资源;根据各个所述子文件的文件资源加载所述待加载的文件。
应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)10041和麦克风10042,图形处理器10041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10061。用户输入单元1007包括触控面板10071以及其他输入设备10072中的至少一种。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器1009可用于存储软件程序以及各种数据。存储器1009可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1009可以包括易失性存储器或非易失性存储器,或者,存储器1009可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1009包括但不限于这些和任意其它适合类型的存储器。
处理器1010可包括一个或多个处理单元;可选的,处理器1010集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述文件存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述文件存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述文件存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (15)
1.一种文件存储方法,其特征在于,包括:
获取待存储的文件;
将所述待存储的文件划分为至少两个子文件;
对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
2.根据权利要求1所述的方法,其特征在于,在所述将所述待存储的文件划分为至少两个子文件之后,所述方法还包括:
在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息;
将所述子文件的文件标识与所述子文件的文件资源信息关联存储。
3.根据权利要求2所述的方法,其特征在于,所述在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息,包括:
在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的复杂度;
根据所述子文件的复杂度,确定所述子文件的文件资源存储类型;
根据所述子文件的文件资源存储类型确定所述子文件的文件资源信息。
4.根据权利要求1所述的方法,其特征在于,在所述子文件的文件资源信息与所述已存储的子文件的文件资源信息相匹配的情况下,判定所述子文件与所述已存储的子文件相匹配。
5.根据权利要求1所述的方法,其特征在于,所述将所述待存储的文件划分为至少两个子文件的步骤之前,所述方法还包括:
根据所述待存储的文件的文件属性,确定所述待存储的文件的第一划分数量;
所述将所述待存储的文件划分为至少两个子文件,包括:
根据所述第一划分数量将所述待存储的文件划分为所述至少两个子文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
确定各个所述子文件的复杂度;
在其中一个子文件的复杂度大于复杂度阈值的情况下,根据所述子文件的文件属性确定所述子文件的第二划分数量;
根据所述第二划分数量将所述子文件划分为至少两个子文件。
7.根据权利要求1所述的方法,其特征在于,所述将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,包括:
将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储至所述待存储的文件的文件资源映射表。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取待加载的文件的文件标识;
根据所述待加载的文件的文件标识确定所述待加载的文件的文件资源映射表;
从所述待加载的文件的文件资源映射表中确定所述待加载的文件的各个子文件的文件资源信息;
根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件。
9.根据权利要求8所述的方法,其特征在于,所述根据所述待加载的文件的各个子文件的文件资源信息加载所述待加载的文件,包括:
根据每个子文件的文件资源存储类型解析所述子文件的文件资源信息,获得文件资源;
根据各个所述子文件的文件资源加载所述待加载的文件。
10.一种文件存储装置,其特征在于,包括:
获取模块,用于获取待存储的文件;
分割模块,用于将所述待存储的文件划分为至少两个子文件;
存储模块,用于对于所述待存储的文件的每个子文件,在所述子文件与已存储的子文件相匹配的情况下,将所述子文件的文件标识与所述已存储的子文件的文件资源信息关联存储,所述文件资源信息用于获取所述已存储的子文件的文件资源。
11.根据权利要求10所述的装置,其特征在于,所述存储模块还用于:
在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的文件资源信息;
将所述子文件的文件标识与所述子文件的文件资源信息关联存储。
12.根据权利要求11所述的装置,其特征在于,所述存储模块用于:
在不存在与所述子文件相匹配的所述已存储的子文件的情况下,确定所述子文件的复杂度;
根据所述子文件的复杂度,确定所述子文件的文件资源存储类型;
根据所述子文件的文件资源存储类型确定所述子文件的文件资源信息。
13.根据权利要求10所述的装置,其特征在于,所述存储模块用于:
在所述子文件的文件资源信息与所述已存储的子文件的文件资源信息相匹配的情况下,判定所述子文件与所述已存储的子文件相匹配。
14.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的文件存储方法的步骤。
15.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的文件存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311281172.6A CN117311631A (zh) | 2023-09-28 | 2023-09-28 | 文件存储方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311281172.6A CN117311631A (zh) | 2023-09-28 | 2023-09-28 | 文件存储方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311631A true CN117311631A (zh) | 2023-12-29 |
Family
ID=89236794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311281172.6A Pending CN117311631A (zh) | 2023-09-28 | 2023-09-28 | 文件存储方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311631A (zh) |
-
2023
- 2023-09-28 CN CN202311281172.6A patent/CN117311631A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9959345B2 (en) | Search and identification of video content | |
CN110446062B (zh) | 大数据文件传输的接收处理方法、电子装置及存储介质 | |
US20170032034A1 (en) | Systems and methods for addressing a media database using distance associative hashing | |
CN101656094A (zh) | 数据存储方法和存储设备 | |
CN110147469B (zh) | 一种数据处理方法、设备及存储介质 | |
US20220264091A1 (en) | Information compression/decompression methods and apparatuses, and storage medium | |
CN110677718B (zh) | 一种视频识别方法和装置 | |
CN112532998B (zh) | 抽取视频帧的方法、装置、设备和可读存储介质 | |
CN104427341A (zh) | 一种图像处理方法、装置及终端 | |
CN112995676A (zh) | 一种音视频压缩方法、装置、设备、系统及存储介质 | |
CN111817722A (zh) | 数据压缩方法、装置及计算机设备 | |
CN111294600A (zh) | 一种视频序列帧的压缩方法、解压方法及装置 | |
CN109685714B (zh) | 图片压缩方法、装置、设备及计算机可读存储介质 | |
US9282331B2 (en) | Image processing method and electronic device | |
CN109617708B (zh) | 一种埋点日志的压缩方法、设备及系统 | |
KR20090029173A (ko) | Jpeg 어플리케이션의 가변 길이 코드 디코딩 | |
CN117311631A (zh) | 文件存储方法、装置、电子设备及可读存储介质 | |
JP2017192080A (ja) | 画像圧縮装置、画像復号装置、画像圧縮方法及び画像圧縮プログラム | |
CN115033544A (zh) | 一种基于关系数值的数据压缩方法、装置、设备和介质 | |
CN114626994A (zh) | 一种图像处理方法、视频处理方法、计算机设备、存储介质 | |
CN114238264A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
EP3722949B1 (en) | Image transmission method, apparatus and storage medium | |
CN105657473A (zh) | 数据处理的方法和装置 | |
WO2007099327A2 (en) | Data compression | |
CN113473150B (zh) | 一种图像处理方法、装置以及计算机可读存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |