1.本发明涉及数据存储技术领域,特别涉及一种文件存储方法、装置、设备及存储介质。
背景技术:
2.目前,通常使用的文件存储方式为单一存储方式,即只按照一种存储方式进行简单存储,不具有灵活性,也不方便后续业务功能的拓展。现有技术中,为实现存储的灵活性,通过两次请求分别进行文件上传和场景选择,面对大量需要的待存储的文件时,降低了文件存储的效率,有一定的局限性。
技术实现要素:
3.有鉴于此,本发明的目的在于提供一种文件存储方法、装置、设备及介质,能够对不同文件自动采用不同的存储方式进行存储,以满足多样化的存储需求。其具体方案如下:
4.第一方面,本技术公开了一种文件存储方法,包括:
5.获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;
6.通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;
7.通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。
8.可选的,所述通过所述文件服务获取客户端上传的待存储文件,包括:
9.通过所述文件服务的文件上传接口,获取客户端发送的待存储文件。
10.可选的,所述按照所述目标存储方式存储所述待存储文件之后,还包括:
11.将所述待存储文件对应的属性信息和目标存储方式记录在本地预先创建的文件存储信息表内。
12.可选的,所述对文件服务进行存储策略配置,包括:
13.通过所述文件服务的策略配置接口,创建文件属性和存储方式的映射关系,以配置所述文件服务的存储策略;
14.其中,所述文件属性包括文件属性种类和/或所述文件属性种类对应的限制参数;所述存储方式包括存储场景和/或存储后处理操作。
15.可选的,所述文件属性种类包括文件大小、文件类型和文件名称中的任意一项或多项;
16.相应的,所述文件属性种类对应的限制参数包括所述文件大小对应的文件大小范围,和/或所述文件类型对应的文件格式参数,和/或所述文件名称对应的目标前缀。
17.可选的,所述存储场景包括云存储、本地存储和分布式存储系统存储;所述分布式存储系统存储包括轻量级分布式文件系统存储。
18.可选的,所述存储后处理操作包括生成统一资源定位符以便在线预览的第一操作,和/或对多个文件进行压缩的第二操作,和/或进行文件分区存储的第三操作。
19.第二方面,本技术公开了一种文件存储装置,包括:
20.存储策略配置模块,用于获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;
21.解析模块,用于通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;
22.存储模块,用于通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。
23.第三方面,本技术公开了一种电子设备,包括:
24.存储器,用于保存计算机程序;
25.处理器,用于执行所述计算机程序,以实现前述的文件存储方法。
26.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的文件存储方法。
27.本技术中,获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。可见,通过根据用户设置的自定义存储规则,创建文件属性和存储方式之间的映射关系以配置文件服务的存储策略,当文件服务接收到待存储文件后,通过解析得到待存储文件的属性信息,然后根据该属性信息查找存储策略确定出上述待存储文件对应的目标存储方式,并按照该目标存储方式存储上述待存储文件,由此可以对不同属性的文件自动采用不同的存储方式进行存储,以满足多样化的存储需求。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
29.图1为本技术提供的一种文件存储方法流程图;
30.图2为本技术提供的一种具体的存储策略配置方法流程图;
31.图3为本技术提供的一种文件存储装置结构示意图;
32.图4为本技术提供的一种电子设备结构图。
具体实施方式
33.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅
仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.现有技术中,通过两次请求分别进行文件上传和场景选择,面对大量需要的待存储的文件时,降低了文件存储的效率,有一定的局限性。为克服上述区别技术特征,本实施例提出一种文件存储方法,能够对不同文件自动采用不同的存储方式进行存储,以满足多样化的存储需求。
35.本技术实施例公开了一种文件存储方法,参见图1所示,该方法可以包括以下步骤:
36.步骤s11:获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系。
37.本实施例中,首先获取用户发送的自定义存储规则,并根据所述自定义存储规则构建多种文件属性和存储方式的映射关系,以对文件服务进行存储策略配置。文件服务即包括文件上传、文件下载、文件存储等功能在内的服务,通过根据自定义存储规则配置文件服务的存储策略,使用户上传的文件可以按照用户需求进行自动存储。
38.本实施例中,所述对文件服务进行存储策略配置,可以包括:通过所述文件服务的策略配置接口,创建文件属性和存储方式的映射关系,以配置所述文件服务的存储策略;其中,所述文件属性包括文件属性种类和/或所述文件属性种类对应的限制参数;所述存储方式包括存储场景和/或存储后处理操作。即通过文件服务提供的策略配置接口配置存储策略,其中文件属性包括文件属性种类和/或文件属性种类对应的限制参数,存储方式包括存储场景和/或存储后处理操作,也就是说,构建的多个文件属性和存储方式的映射关系,可以是文件属性种类及对应的限制参数中的一个或两个与存储场景及存储后处理操作中的一个或两个之间任意组合的映射关系;如,某个映射关系为文件属性种类和存储场景的映射关系,另一个映射关系为文件属性种类分别和存储场景和存储后处理操作的映射关系。
39.本实施例中,所述文件属性种类可以包括文件大小、文件类型和文件名称中的任意一项或多项;相应的,所述文件属性种类对应的限制参数可以包括所述文件大小对应的文件大小范围,和/或所述文件类型对应的文件格式参数,和/或所述文件名称对应的目标前缀。即当用户限定了某种文件属性种类后,可以进一步限定该种类对应的限制参数,如图2所示,可以限定文件大小在1m-20m,文件格式为jpg格式,或文件名称以某个特殊字段开头。
40.本实施例中,所述存储场景可以包括云存储、本地存储和分布式存储系统存储;所述分布式存储系统存储可以包括轻量级分布式文件系统存储。可以理解的是,文件服务中包含多个实际提供存储功能的场景,这些场景包括现有的云存储,例如阿里云,腾讯云等,文件服务调用相关接口即可将文件存储至这些云存储中。本地存储场景则是直接将文件存储到物理机上,相关的存储功能需要自行实现。分布式存储系统(distributed file system,dfs)需要部署到物理机上,然后调用dfs内对外暴漏从存储接口即可将文件存储到dfs中进行统一管理,上述分布式存储系统存储可以为轻量级分布式文件系统存储(fast distributed file system,fdfs)。
41.本实施例中,所述存储后处理操作可以包括生成统一资源定位符以便在线预览的第一操作,和/或对多个文件进行压缩的第二操作,和/或进行文件分区存储的第三操作。即
上传后用户想要进行的操作,例如上传完图片文件后需要提供在线阅览,或上传多个文件后需要打包成压缩包批量下载等,通过这些自定义的参数配置来完成用户特殊的上传需求。例如用户的项目中想把图片都存储在云服务器中并提供在线阅览功能,此时用户可以配置对图片允许在线阅览的配置,将图片存储的场景选择为云存储场景,此后用户在上传图片时文件服务的文件上传接口在接收图片类型的文件时,会自动生成图片的url用来在线阅览并将文件存储到云服务中。可见,存储策略和场景的来源包括文件服务内置一些通用策略和场景,还可以提供一个上传功能供用户进行定制化的配置,用户可以将需要使用的存储场景提前通过上传策略在文件服务中进行配置,也可以将系统内置的和已经上传的各种配置进行灵活组合来达到对应的存储需求。
42.步骤s12:通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息。
43.本实施例中,对文件服务进行配置后,文件服务在接收到客户端上传的待存储文件后,首先对待存储文件进行解析以得到待存储文件对应的属性信息,属性信息具体包括但不限于文件类型、文件大小及文件名称等。本实施例中,所述通过所述文件服务获取客户端上传的待存储文件,可以包括:通过所述文件服务的文件上传接口,获取客户端发送的待存储文件。即文件需要上传至文件服务中,文件服务对项目中所有的文件进行统一管理,文件服务中提供文件上传的接口,客户端(浏览器等)调用文件服务提供的接口来进行文件上传,项目中所有的文件上传都必须通过文件服务提供的接口才能实现相关功能,由此通过固定接口接收上传文件以尽量保证文件存储安全。
44.步骤s13:通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。
45.即客户端调用文件服务提供的上传接口后,文件服务对上传的文件进行相关的逻辑判断和存储处理,根据存储策略,对不同的文件进行不同的存储处理,例如所有的大文件(超过500m或其他在存储策略中配置的参数)都存储在本地存储中、所有的图片文件都存储在云服务存储中,判断结束后,文件服务将文件存储在对应的场景中。可见,客户端通过向文件服务发送上传文件的请求,文件服务接收到上传请求后对文件进行解析,根据文件类型和大小等参数或者其他自定义参数自动分配存储所使用的场景,包括云存储场景、本地存储场景、分布式存储系统存储场景等,结合不同的存储场景来满足业务中对于不同类型大小文件的存储管理。
46.本实施例中,所述按照所述目标存储方式存储所述待存储文件之后,还可以包括:将所述待存储文件对应的属性信息和目标存储方式记录在本地预先创建的文件存储信息表内。可以理解的是,文件服务是一个独立运行的服务,其具体的存储功能由场景实现,在存储到具体的场景之前,文件服务会对这些文件进行一些处理。文件服务内部会维护一个数据库和一些表,表用来记录文件具体的存储场景、文件的大小、文件的类型、文件名称等一系列属性,同时还会根据上传策略对文件进行分区,例如存储在云服务的图片文件划在一个区里,需要打压缩包的文件存储在一个区里,通过这种方式来对文件进行更方便快捷的管理。同时,文件服务还可以提供可视化界面供相关运维人员进行图片的进一步管理。
47.由上可见,本实施例中获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;
通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。可见,通过根据用户设置的自定义存储规则,创建文件属性和存储方式之间的映射关系以配置文件服务的存储策略,当文件服务接收到待存储文件后,通过解析得到待存储文件的属性信息,然后根据该属性信息查找存储策略确定出上述待存储文件对应的目标存储方式,并按照该目标存储方式存储上述待存储文件,根据用户自定义的存储策略来进行上传时场景的自动化选择,对满足不同存储策略的文件进行不同的上传和统一的管理,例如业务中有些大文件必须存储在本地存储中,有些图片文件必须存储在云服务中,可以实现不同的文件上传到不同的场景中,以满足多样化的存储需求,且便于进行管理。
48.相应的,本技术实施例还公开了一种文件存储装置,参见图3所示,该装置包括:
49.存储策略配置模块11,用于获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;
50.解析模块12,用于通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;
51.存储模块13,用于通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。
52.由上可见,本实施例中获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。可见,通过根据用户设置的自定义存储规则,创建文件属性和存储方式之间的映射关系以配置文件服务的存储策略,当文件服务接收到待存储文件后,通过解析得到待存储文件的属性信息,然后根据该属性信息查找存储策略确定出上述待存储文件对应的目标存储方式,并按照该目标存储方式存储上述待存储文件,由此可以对不同属性的文件自动采用不同的存储方式进行存储,以满足多样化的存储需求。
53.在一些具体实施例中,所述解析模块12具体可以包括:
54.待存储文件获取单元,用于通过所述文件服务的文件上传接口,获取客户端发送的待存储文件。
55.在一些具体实施例中,所述文件存储装置具体可以包括:
56.信息记录单元,用于将所述待存储文件对应的属性信息和目标存储方式记录在本地预先创建的文件存储信息表内。
57.在一些具体实施例中,所述存储策略配置模块11具体可以用于通过所述文件服务的策略配置接口,创建文件属性和存储方式的映射关系,以配置所述文件服务的存储策略;
58.其中,所述文件属性包括文件属性种类和/或所述文件属性种类对应的限制参数;所述存储方式包括存储场景和/或存储后处理操作。
59.在一些具体实施例中,所述文件属性种类可以包括文件大小、文件类型和文件名
称中的任意一项或多项;
60.相应的,所述文件属性种类对应的限制参数可以包括所述文件大小对应的文件大小范围,和/或所述文件类型对应的文件格式参数,和/或所述文件名称对应的目标前缀。
61.在一些具体实施例中,所述存储场景可以包括云存储、本地存储和分布式存储系统存储;所述分布式存储系统存储包括轻量级分布式文件系统存储。
62.在一些具体实施例中,所述存储后处理操作可以包括生成统一资源定位符以便在线预览的第一操作,和/或对多个文件进行压缩的第二操作,和/或进行文件分区存储的第三操作。
63.进一步的,本技术实施例还公开了一种电子设备,参见图4所示,图中的内容不能被认为是对本技术的使用范围的任何限制。
64.图4为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的文件存储方法中的相关步骤。
65.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
66.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括自定义存储规则在内的数据223等,存储方式可以是短暂存储或者永久存储。
67.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的文件存储方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
68.进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的文件存储方法步骤。
69.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
70.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
71.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
72.以上对本发明所提供的一种文件存储方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.一种文件存储方法,其特征在于,包括:获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。2.根据权利要求1所述的文件存储方法,其特征在于,所述通过所述文件服务获取客户端上传的待存储文件,包括:通过所述文件服务的文件上传接口,获取客户端发送的待存储文件。3.根据权利要求1所述的文件存储方法,其特征在于,所述按照所述目标存储方式存储所述待存储文件之后,还包括:将所述待存储文件对应的属性信息和目标存储方式记录在本地预先创建的文件存储信息表内。4.根据权利要求1至3任一项所述的文件存储方法,其特征在于,所述对文件服务进行存储策略配置,包括:通过所述文件服务的策略配置接口,创建文件属性和存储方式的映射关系,以配置所述文件服务的存储策略;其中,所述文件属性包括文件属性种类和/或所述文件属性种类对应的限制参数;所述存储方式包括存储场景和/或存储后处理操作。5.根据权利要求4所述的文件存储方法,其特征在于,所述文件属性种类包括文件大小、文件类型和文件名称中的任意一项或多项;相应的,所述文件属性种类对应的限制参数包括所述文件大小对应的文件大小范围,和/或所述文件类型对应的文件格式参数,和/或所述文件名称对应的目标前缀。6.根据权利要求4所述的文件存储方法,其特征在于,所述存储场景包括云存储、本地存储和分布式存储系统存储;所述分布式存储系统存储包括轻量级分布式文件系统存储。7.根据权利要求4所述的文件存储方法,其特征在于,所述存储后处理操作包括生成统一资源定位符以便在线预览的第一操作,和/或对多个文件进行压缩的第二操作,和/或进行文件分区存储的第三操作。8.一种文件存储装置,其特征在于,包括:存储策略配置模块,用于获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;解析模块,用于通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;存储模块,用于通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。9.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的文件存储方
法。10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至7任一项所述的文件存储方法。
技术总结
本申请公开了一种文件存储方法、装置、设备及存储介质。该方法包括:获取用户发送的自定义存储规则,并根据所述自定义存储规则对文件服务进行存储策略配置;所述存储策略包括文件属性和存储方式的映射关系;通过所述文件服务获取客户端上传的待存储文件,并对所述待存储文件进行解析得到所述待存储文件对应的属性信息;通过所述文件服务根据所述属性信息查看所述存储策略,确定出所述属性信息对应的目标存储方式,并按照所述目标存储方式存储所述待存储文件。可以对不同属性的文件自动采用不同的存储方式进行存储,以满足多样化的存储需求。求。求。
技术研发人员:郑玉聪 范渊 苗春雨
受保护的技术使用者:杭州安恒信息技术股份有限公司
技术研发日:2021.12.03
技术公布日:2022/3/8