CN115344541A - 一种文件存储的方法、装置、设备及存储介质 - Google Patents
一种文件存储的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115344541A CN115344541A CN202210893309.2A CN202210893309A CN115344541A CN 115344541 A CN115344541 A CN 115344541A CN 202210893309 A CN202210893309 A CN 202210893309A CN 115344541 A CN115344541 A CN 115344541A
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- abstract
- storage area
- target application
- 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
Images
Classifications
-
- 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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种文件存储方法、装置、设备及存储介质,其中,文件存储方法包括:接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数;根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域;将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。本发明可精准防止重复文件上传,有效提高文件存储空间的利用率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种文件存储方法、装置、设备及存储介质。
背景技术
文件服务系统作为目标应用的统一存储,不可避免会出现大量重复文件的情况,如果将重复的内容上传,随着时间的推移,冗余数据量会越来越大,如果不加以控制,将会对存储空间、存储成本、存储管理带来不可估量的损失并且极大地浪费了存储资源。
现有方式中将待上传文件的文件名和文件内容与已存储文件的文件名和文件内容进行比较,根据比较结果判定是否需要将待上传文件进行存储但是这种方式需要将待上传文件与全部已存储文件进行比较,计算量较大,并且,对于不同的目标应用,可能存在相同的文件,根据目标应用的实际需要,应当将不同目标应用中相同的文件全部上传,但是现有方式中的防重方法无法判定两次上传的文件是真的重复还是不同目标应用的实际需要,容易出现文件漏传的问题。
因此,如何精准的判断两次上传的文件是否重复,防止同一目标应用对文件的重复上传或漏传成为一个亟待解决的问题。
发明内容
本申请提供了一种文件存储方法、装置、设备及存储介质,以解决现有技术中如何精准防止同一目标应用中重复文件的上传的技术问题。
本发明第一方面提供了一种文件存储的方法,包括:
接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
本公开实施例的文件存储的方法,在文件服务系统中加入了存储区域的概念,存储区域与目标应用对应且存储区域之间相互隔离。实现不同的目标应用在不同的存储区域进行操作,而不涉及与其他目标应用对应的存储区域,也不会造成存储混乱,可以精准的判断两次上传的文件是真的重复还是不同目标应用的实际需要,防止文件的重复上传或者漏传等问题。
结合第一方面,在第一方面的第一实施例中,接收目标应用发送的文件上传请求的步骤之前,方法还包括:
接收目标应用发送的申请存储区域请求。
根据预设分配规则为目标应用分配相应的存储区域,文件服务系统中设置有不同的存储区域。
结合第一方面,在第一方面的第二实施例中,还包括:
向目标应用发送文件存储信息,文件存储信息中包含存储对象文件的引用路径。
本公开实施例的文件存储的方法,文件服务系统执行防重操作后,通过反馈操作结果的方式,通知目标应用本次操作请求是否成功,一方面可以实现防止重复文件的上传;另一方面可以解决漏传等问题。
结合第一方面的第二实施例,在第一方面的第三实施例中,还包括:
若存储区域中存在与文件摘要相同的历史文件摘要,将与文件摘要相同的历史文件摘要所对应的文件,确定为与对象文件相同的目标文件,将目标文件的引用路径确定为对象文件的引用路径。
本公开实施例的文件存储的方法,防止文件重复上传,有效提高文件存储空间的利用率,提升了文件服务的生命力。
结合第一方面,在第一方面的第四实施例中,文件服务系统关联有多个外部存储对象,将对象文件存储于与文件服务系统所关联的外部存储对象中,包括:
通过配置文件确定目标应用对应的外部存储对象,配置文件中存储有各目标应用与各外部存储对象的对应关系。
调用外部存储对象的接口,将对象文件存储于外部存储对象。
本公开实施例的文件存储的方法,通过配置文件关联外部存储对象,架构简单,便于扩展、维护、开发,适合单体或集群部署。
结合第一方面,在第一方面的第五实施例中,包括:文件服务系统中与目标应用连接的服务接口采用通用协议。
本公开实施例的文件存储的方法,将文件服务系统作为一个文件存储服务的适配器,对外提供简易的服务接口,选取最为通用的协议,易为不同语言架构所适配,因此适合在各个场景下应用。
本发明第二方面提供了一种文件存储的装置,包括:
第一接收模块,用于接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
生成模块,用于根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
比较模块,用于将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
本发明提供的文件存储装置中各部件所执行的功能均已在上述任一方法实施例中得以应用,因此这里不再赘述。
结合第二方面,在第二方面的第一实施例中,还包括:
第二接收模块,用于接收目标应用发送的申请存储区域请求。
分配模块,用于根据预设分配规则为目标应用分配相应的存储区域,文件服务系统中设置有不同的存储区域。
本发明第三方面提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面的文件存储方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如本发明第一方面提供的文件存储方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的文件存储方法流程示意图(一);
图2为本发明一实施例提供的三层文件服务系统框图;
图3为本发明一实施例提供的文件存储方法流程示意图(二);
图4为本发明一实施例提供的文件存储方法流程示意图(三);
图5为本发明一实施例提供的文件存储方法流程示意图(四);
图6为本发明一实施例提供的文件存储方法流程示意图(五);
图7为本发明实施例提供的一种文件存储装置结构示意图;
图8为本发明实施例提供的一种文件存储方法的计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
针对背景技术中所提及的技术问题,本发明实施例提供了一种文件存储方法,如图1所示,该方法步骤包括:
步骤S110,接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
示例性的,如图2所示,目标应用为具体的文件操作者,分为内部系统和第三方系统,内部系统包括客户端、应用系统。客户端可以包括浏览器、移动应用等,应用系统集成业务逻辑功能。
作为一可选实施例,存储区域的形式可以为存储桶,下文涉及存储桶之处,适用此处描述,不再赘述。目标应用调用文件上传接口发起文件上传请求。
在一可选实施例中,文件上传请求中包括存储桶、密钥、上传文件本身及相关参数,用于身份识别、安全认证、数据隔离。
步骤S120,根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
示例性的,文件服务系统负责集中管理文件信息,集成外部存储,并对外提供文件存取服务。存储区域参数可以用于身份识别、安全认证、数据隔离。文件服务系统接收到请求后,除了安全认证外,需要对上传文件生成文件摘要,将文件摘要和存储桶配对形成上传文件是否重复的依据,把配对后的存储桶和文件摘要传递给下一步。
作为一可选实施例,使用Java(计算机编程语言)语言的软件开发工具包(JavaDevelopment Kit,JDK)对文件摘要生成的具体步骤描述如下:
第一步:文件对象转为byte数组件;
byte[]bytes=FileUtil.readBytes(file);
第二步:创建文件摘要对象;
MessageDigest mdTemp=MessageDigest.getInstance("MD5");
//是指使用MD5算法生成摘要对象。
第三步:生成摘要;
mdTemp.update(bytes);
byte[]md=mdTemp.digest();
第四步:摘要转16进制字符。
String mdStr=HexUtil.encodeHexStr(md);
步骤S130,将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
示例性的,文件服务系统以存储桶和文件摘要作为查询条件,判断数据库中是否存在相同文件,当不存在时,则执行正常文件存储逻辑,将文件摘要存储于存储区域中,与当前历史文件摘要共同成为新的历史文件摘要,作为后续文件服务系统执行防重操作时的依据。同时将对象文件存储于与文件服务系统所关联的外部存储对象中,如图2所示,外部存储对象指各个外部文件存储服务商,如阿里云、亚马逊、远程字典服务(RemoteDictionary Server,Redis)、简单存储服务(S3 Simple Storage Service)、FastDFS(是一个开源的轻量级分布式文件系统,它对文件进行管理)等。
具体的,文件服务系统本身采取传统三层架构原理,从架构角度理解可以分为三个角色,分别是目标应用、文件服务系统、外部存储系统。目标应用调用文件服务系统接口,实现文件存取功能;文件服务系统接入外部存储系统,并对目标应用提供文件存取功能;目标应用不直接调用外部存储系统。从这些关系便可理解,目标应用只需要与文件服务系统接入一次后,以后的文件存储变更便与目标应用无直接关系。使目标应用对文件存储无感知,能够做到目标应用一次接入随意切换的需要。
本发明实施例提供的文件存储方法,在文件服务系统中加入了存储区域的概念,存储区域与目标应用对应且存储区域之间相互隔离。实现不同的目标应用在不同的存储区域进行操作,而不涉及与其他目标应用对应的存储区域,也不会造成存储混乱,可以精准的判断两次上传的文件是真的重复还是不同目标应用的实际需要,防止文件的重复上传或者漏传等问题。
作为本发明的一可选实施方式,如图3所示,本发明实施例提供的文件存储方法包括:
步骤S310,接收目标应用发送的申请存储区域请求。
示例性的,目标应用向文件服务系统管理员申请存储桶、密钥,用于身份识别、安全认证、数据隔离。
步骤S320,根据预设分配规则为目标应用分配相应的存储区域,文件服务系统中设置有不同的存储区域。
示例性的,存储桶有两个用途,一个是物理上文件的隔离,可理解为一个存储桶代表一个文件目录,也是代表一个接入系统。另一个用途是在防重判断时的业务边界。文件服务系统会根据不同的目标应用划分不同的存储区域,以满足不同目标应用的业务需求。
步骤S330,接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
步骤S340,根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
步骤S350,将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
本实施例中,步骤S330至步骤S350与上述实施例中的步骤S110至步骤S130类似,此处不再赘述。
本发明实施例提供的文件存储方法,在文件服务系统中加入了存储桶的概念,存储桶是指以业务为边界,业务之间互相隔离,如重复性判断、文件上传、文件删除都是以存储桶为边界进行。文件服务系统为不同的业务请求分配不同的存储桶,形成文件摘要和存储桶配对的方式,作为文件是否重复的依据,不会造成业务间的干扰,大大提升了文件服务的生命力。
作为本发明的一可选实施方式,如图4所示,本发明实施例提供的文件存储方法包括:
步骤S410,接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
步骤S420,根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
步骤S430,将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
本实施例中,步骤S410至步骤S430与上述实施例中的步骤S110至步骤S130类似,此处不再赘述。
步骤S440,向目标应用发送文件存储信息,文件存储信息中包含存储对象文件的引用路径。
示例性的,目标应用接收到文件存储信息后,可确认本次操作成功,通过文件存储信息中的引用路径可以获取文件存储位置,便于对上传后的文件进行操作,比如查询、删除等。如若未返回文件存储信息或者返回其他信息,目标应用可确认本次操作未成功,重新操作。
本发明实施例提供的文件存储方法,文件服务系统执行防重操作后,通过反馈操作结果的方式,通知目标应用本次请求是否成功,一方面可以实现防止重复文件的上传;另一方面可以解决漏传等问题。
作为本发明的一可选实施方式,如图5所示,本发明实施例提供的文件存储方法包括:
步骤S510,接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
步骤S520,根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
步骤S530,将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中。
步骤S540,向目标应用发送文件存储信息,文件存储信息中包含存储对象文件的引用路径。
本实施例中,步骤S510至步骤S540与上述实施例中的步骤S410至步骤S440类似,此处不再赘述。
步骤S550,若存储区域中存在与文件摘要相同的历史文件摘要,将与文件摘要相同的历史文件摘要所对应的文件,确定为与对象文件相同的目标文件,将目标文件的引用路径确定为对象文件的引用路径。
示例性的,若存储区域中存在与文件摘要相同的历史文件摘要,则放弃存储本次文件,将已保存的相同文件的存储路径作为本次请求文件的引用路径。
本发明实施例提供的文件存储方法,防止文件重复上传,有效提高文件存储空间的利用率,提升了文件服务的生命力。
作为本发明的一可选实施方式,如图6所示,本发明实施例提供的文件存储方法包括:
步骤S610,接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数。
步骤S620,根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域。
本实施例中,步骤S610至步骤S620与上述实施例中的步骤S110至步骤S120类似,此处不再赘述。
步骤S630,将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,通过配置文件确定目标应用对应的外部存储对象,配置文件中存储有各目标应用与各外部存储对象的对应关系。
示例性的,现有文件存储方案中各外部存储系统集成方式各异,比如有的以软件开发工具包(Software Development Kit,SDK)方式提供集成、而有的以超文本传输协议(Hypertext Tranfer Protocal,HTTP)接口方式提供服务、而有的能直接提供项目对象模型(Maven)依赖坐标集成。另一方面各外部存储系统初始化参数各异,比如构成服务对象时需要的参数,如端口、区域、存储桶、服务地址等,各有差异。比如使用工厂模式创建存储对象,通常工厂模式中需要给特定存储对象设置标识码,通过逻辑判断条件,根据标识码提取相应存储对外,代码存在一定的耦合,扩展新存储对象时需要修改工厂代码。
解决上述两方面问题的方式主要是聚合,把外部不可控、耦合高的功能、配置、代码聚合在一块,无论任何外部存储系统集成方式、初始参数如何复杂和个性化,都不会影响到整体架构设计。
聚合实现方式相对于传统的开发方式,集成外部接口时通常是在业务代码上进行简单的封装和调试即完成,但这种方式耦合度高、灵活性差、容易出错、不便于扩展。而聚合是指把外部接口需要的配置信息、初始化动作、逻辑代码、依赖包都封装在一个相对独立的空间,如Java归档(Java ARchive,JAR)包、类、方法内部,模块代码开发时只依赖于接口,实际使用哪个接口可通过配置文件动态注入,通过插拨方式实现外部存储系统服务的接入。当出现程序故障、需求变更时,只需要在这可控的范围内排查或开发即可,不把问题对外漫延。
具体的,JAR是一种与平台无关的文件格式,可将多个文件合成一个文件。此处的插拨方式可理解为我们为每一个外部存储系统开发的一种适配器,也可称为插件,在实际使用时可通过配置的方式灵活切换。
本方案利用了Spring架构(Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器)的控制反转(Inversion of Control,IOC)原理,结合SpringBoot(Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程)自动配置功能,存储对象实现接口后,只需要通过配置文件,即可实现存储对象动态注入,无需修改代码。
步骤S640,调用外部存储对象的接口,将对象文件存储于外部存储对象。
示例性的,现有文件存储方案中各外部存储系统上传下载接口参数各异,比如有的只需提供文件对象、而有的需要同时提供相对存储路径、有的需要额外提供存储参数等。
解决上述问题的方式主要是抽象化,即无论外部存储系统存在着任何差异,其本质也是为应用方提供文件上传、下载、查询等功能,那么在其之上设计抽象接口,对不同外部存储系统的接口进行功能开发即可实现整合。
抽象化通常有两种实现方式,分别是抽象类和接口,本发明实施例里中选择的是较为轻量的接口方式,采用接口方式实现抽象化时,文件的存储操作逻辑相对简单合,最终本发明实施例中的抽象的接口分别有保存文件、获取文件、删除文件。
本发明实施例提供的文件存储方法,一方面架构简单,文件服务本身采取传统三层架构原理,无状态特性,适合单体或集群部署,再借助融合引擎的设计思想,即聚合和抽象化,简单的架构使其容易扩展、维护、开发;另一方面部署简便,文件服务本身技术选型原则是成熟稳定,其开发框架选用Spring Boot、依赖集成管理使用Maven、数据库使用关系型数据库管理系统(MySQL),辅以打包和启动脚本使其可以轻松部署。
作为本发明的一可选实施方式,在本发明实施例提供的文件存储方法中,文件服务系统中与目标应用连接的服务接口采用通用协议。
示例性的,如果文件存储系统使用Java SDK提供服务,则只适合Java程序使用。而本方案的文件存储系统以HTTP协议对外暴露服务接口,HTTP协议是一种通用协议,适合更多的使用场景,目前各种开发语言均可支持。同时以HTTP接口对外提供服务,可以同时为多个应用系统服务,适合单体和集群部署。
作为一可选实施例,采用Java语言开发文件服务系统,同时借助融合引擎,即聚合和抽象化,使文件服务系统具备整合外部存储系统服务的能力。
本发明实施例提供的文件存储方法,把文件服务系统作为一个文件存储服务的适配器,对外提供简易的服务接口,选取最为通用的协议,易为不同语言架构所适配,因此适合在各个场景下应用。
图7为本发明一实施例提供的一种文件存储的装置,应用于文件服务系统,本实施例中的文件存储装置包括:
第一接收模块710,用于接收目标应用发送的文件上传请求,文件上传请求包括对象文件以及与目标应用对应的存储区域参数,详细内容参见上述实施例中步骤S110的描述,在此不再赘述。
生成模块720,用于根据对象文件生成对象文件的文件摘要,并根据存储区域参数确定文件服务系统中与目标应用对应的存储区域,详细内容参见上述实施例中步骤S120的描述,在此不再赘述。
比较模块730,用于将对象文件的文件摘要和存储区域中的历史文件摘要进行比较,若存储区域中不存在与文件摘要相同的历史文件摘要,将文件摘要存储于存储区域中,将对象文件存储于与文件服务系统所关联的外部存储对象中,详细内容参见上述实施例中步骤S130的描述,在此不再赘述。
作为本发明一个可选实施方式,文件存储的装置还包括:
第二接收模块,用于接收目标应用发送的申请存储区域请求,详细内容参见上述实施例中步骤S310的描述,在此不再赘述。
分配模块,用于根据预设分配规则为目标应用分配相应的存储区域,文件服务系统中设置有不同的存储区域,详细内容参见上述实施例中步骤S320的描述,在此不再赘述。
作为本发明一个可选实施方式,文件存储的装置还包括:
发送模块,用于向目标应用发送文件存储信息,文件存储信息中包含存储对象文件的引用路径,详细内容参见上述实施例中步骤S440的描述,在此不再赘述。
作为本发明一个可选实施方式,比较模块730还用于:
若存储区域中存在与文件摘要相同的历史文件摘要,将与文件摘要相同的历史文件摘要所对应的文件,确定为与对象文件相同的目标文件,将目标文件的引用路径确定为对象文件的引用路径,详细内容参见上述实施例中步骤S550的描述,在此不再赘述。
作为本发明一个可选实施方式,比较模块730还包括:
确定子模块,用于通过配置文件确定目标应用对应的外部存储对象,配置文件中存储有各目标应用与各外部存储对象的对应关系,详细内容参见上述实施例中步骤S630的描述,在此不再赘述。
调用子模块,用于调用外部存储对象的接口,将对象文件存储于外部存储对象,详细内容参见上述实施例中步骤S640的描述,在此不再赘述。
本发明实施例提供了一种计算机设备,如图8所示,该设备包括一个或多个处理器810以及存储器820,存储器820包括持久内存、易失内存和硬盘,图8中以一个处理器810为例。该设备还可以包括:输入装置830和输出装置840。
处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
处理器810可以为中央处理器(Central Processing Unit,CPU)。处理器810还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据文件存储装置的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至文件存储装置。输入装置830可接收用户输入的计算请求(或其他数字或字符信息),以及产生与文件存储装置有关的键信号输入。输出装置840可包括显示屏等显示设备,用以输出计算结果。
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的文件存储方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read-Only Memory,ROM),可擦除可编辑只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(Compact Disc Read-Only Memory,CDROM)。另外,计算机可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array,PGA),现场可编程门阵列(Field Programmable Gate Array,FPGA)等。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。在本公开描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种文件存储方法,其特征在于,应用于文件服务系统,所述方法包括:
接收目标应用发送的文件上传请求,所述文件上传请求包括对象文件以及与所述目标应用对应的存储区域参数;
根据所述对象文件生成所述对象文件的文件摘要,并根据所述存储区域参数确定文件服务系统中与所述目标应用对应的存储区域;
将所述对象文件的文件摘要和所述存储区域中的历史文件摘要进行比较,若所述存储区域中不存在与所述文件摘要相同的历史文件摘要,将所述文件摘要存储于所述存储区域中,将所述对象文件存储于与所述文件服务系统所关联的外部存储对象中。
2.根据权利要求1所述的文件存储方法,其特征在于,在接收目标应用发送的文件上传请求的步骤之前,所述方法还包括:
接收目标应用发送的申请存储区域请求;
根据预设分配规则为所述目标应用分配相应的存储区域,所述文件服务系统中设置有不同的存储区域。
3.根据权利要求1所述的文件存储方法,其特征在于,还包括:
向所述目标应用发送文件存储信息,所述文件存储信息中包含存储所述对象文件的引用路径。
4.根据权利要求3所述的文件存储方法,其特征在于,还包括:
若所述存储区域中存在与所述文件摘要相同的历史文件摘要,将与所述文件摘要相同的历史文件摘要所对应的文件,确定为与所述对象文件相同的目标文件,将所述目标文件的引用路径确定为所述对象文件的引用路径。
5.根据权利要求1所述的文件存储方法,其特征在于,所述文件服务系统关联有多个外部存储对象,所述将所述对象文件存储于与所述文件服务系统所关联的外部存储对象中,包括:
通过配置文件确定所述目标应用对应的外部存储对象,所述配置文件中存储有各目标应用与各外部存储对象的对应关系;
调用所述外部存储对象的接口,将所述对象文件存储于所述外部存储对象。
6.根据权利要求1所述的文件存储方法,其特征在于,
所述文件服务系统中与所述目标应用连接的服务接口采用通用协议。
7.一种文件存储的装置,其特征在于,应用于文件服务系统,包括:
第一接收模块,用于接收目标应用发送的文件上传请求,所述文件上传请求包括对象文件以及与所述目标应用对应的存储区域参数;
生成模块,用于根据所述对象文件生成所述对象文件的文件摘要,并根据所述存储区域参数确定文件服务系统中与所述目标应用对应的存储区域;
比较模块,用于将所述对象文件的文件摘要和所述存储区域中的历史文件摘要进行比较,若所述存储区域中不存在与所述文件摘要相同的历史文件摘要,将所述文件摘要存储于所述存储区域中,将所述对象文件存储于与所述文件服务系统所关联的外部存储对象中。
8.根据权利要求7所述的文件存储的装置,其特征在于,还包括:
第二接收模块,用于接收目标应用发送的申请存储区域请求;
分配模块,用于根据预设分配规则为所述目标应用分配相应的存储区域,所述文件服务系统中设置有不同的存储区域。
9.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的文件存储方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的文件存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893309.2A CN115344541A (zh) | 2022-07-27 | 2022-07-27 | 一种文件存储的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893309.2A CN115344541A (zh) | 2022-07-27 | 2022-07-27 | 一种文件存储的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344541A true CN115344541A (zh) | 2022-11-15 |
Family
ID=83950310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210893309.2A Pending CN115344541A (zh) | 2022-07-27 | 2022-07-27 | 一种文件存储的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115344541A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117289877A (zh) * | 2023-11-23 | 2023-12-26 | 云筑信息科技(成都)有限公司 | 一种基于服务网格的通用文件存储动态代理方法 |
-
2022
- 2022-07-27 CN CN202210893309.2A patent/CN115344541A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117289877A (zh) * | 2023-11-23 | 2023-12-26 | 云筑信息科技(成都)有限公司 | 一种基于服务网格的通用文件存储动态代理方法 |
CN117289877B (zh) * | 2023-11-23 | 2024-03-19 | 云筑信息科技(成都)有限公司 | 一种基于服务网格的通用文件存储动态代理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7421511B2 (ja) | アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム | |
JP2021529386A (ja) | オンデマンドネットワークコード実行システム上での補助機能の実行 | |
CN110336871A (zh) | 一种文件处理方法、装置、存储介质及电子设备 | |
CN109995805B (zh) | 一种智能机器人的管理方法、终端设备及介质 | |
KR20140033494A (ko) | 개방형 플랫폼의 기능 확장을 실현하는 방법 및 시스템 | |
US10866841B2 (en) | Communication system and method for accessing and deploying temporary microservices on a heterogeneous platform | |
CN106230977B (zh) | 一种客户端功能加载方法、系统、客户端和服务端 | |
CN104298604A (zh) | 云服务健壮性测试系统及测试方法 | |
CN111258565B (zh) | 小程序的生成方法、系统、服务器及存储介质 | |
WO2020206691A1 (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN112995239B (zh) | 一种数据处理方法和装置 | |
US20220365801A1 (en) | Cloud shell extension framework | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN115344541A (zh) | 一种文件存储的方法、装置、设备及存储介质 | |
CN103810420A (zh) | 一种应用防卸载方法和系统 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN108881460B (zh) | 一种云平台统一监控的实现方法和实现装置 | |
CN103810419A (zh) | 一种应用防卸载方法和设备 | |
CN107301053B (zh) | 图片配置方法、装置和电子终端 | |
US7580703B1 (en) | Provisioning to CDC devices | |
CN111488163B (zh) | 一种固件更新方法、装置及电子设备和存储介质 | |
CN115665265B (zh) | 请求处理方法、装置、设备、存储介质及系统 | |
CN112287265B (zh) | 一种基于异步事件驱动的文件转换方法及系统 | |
CN113641641A (zh) | 文件存储服务的切换方法、切换系统、设备及存储介质 | |
CN111400060A (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 |