一种基于策略模式的文件存储管理的方法与流程

未命名 09-29 阅读:57 评论:0

1.本发明涉及软件开发领域,尤其涉及一种基于策略模式的文件存储管理的方法。


背景技术:

2.企业文件服务器是公司重要应用之一,通常安装在内部网络中,为员工提供文件共享和存储服务;文件服务器能够提高团队协作的效率,减少重复工作,防止数据泄露;工程师进行项目研发时,会生成一系列文件,将生成的文件进行文件存储时,不同的企业或者项目可能会使用不同的文件服务。
3.现有的文件存储方式存在以下弊端:1、面对企业或项目所选用的文件服务器不同时,工程师存储文件时每选择一种文件服务器就要修改一次代码,会导致代码非常耦合,后续代码维护成本高;2、保存文件到不同的文件服务器频繁修改代码,工作量大的同时,效率低下,代码出错风险高。


技术实现要素:

4.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于策略模式的文件存储管理的方法。
5.为实现上述目的,本发明采用了如下技术方案:一种基于策略模式的文件存储管理的方法,包括以下步骤:s1:设置策略接口;工程师在策略接口中定义一系列文件功能函数;所述文件功能函数包括上传文件、删除文件、下载文件等功能函数;s2:获取文件服务器客户端;所述文件服务器客户端包括minio客户端、阿里oss客户端、本地oss客户端、阿里oss客户端、七牛存储客户端、腾讯oss客户端等;工程师通过spring容器获取各个文件服务器客户端,封装文件服务器客户端,生成文件服务器客户端具体操作的工具类;所述文件服务器客户端具体操作的工具类包括功能函数的具体的实现方法;s3:创建具体的存储策略类;工程师创建文件服务器客户端相对应的文件存储策略类;所述文件存储策略类包括minio存储策略类、阿里oss存储策略类、本地oss存储策略类、七牛存储策略类、腾讯oss存储策略类等;所述各个存储策略类中包括具体的服务器类型参数值,每个存储策略类中的服务器类型参数值唯一;s4:将待存储文件与存储策略类进行匹配;工程师将项目研发中的待存储文件存储到对应的文件服务器中;
所述待存储文件包括文件存储类型参数;将待存储文件的文件存储类型参数与存储策略类中的服务器类型参数值进行匹配,如果待存储文件的文件存储类型参数与创建的具体存储策略类中的服务器类型参数值相同,则通过getstrategy组件获取此存储策略类,通过存储策略类调用存储策略类对应的文件服务器客户端中的功能函数,通过调用文件服务器客户端中的上传文件功能函数将待存储文件上传到对应的文件服务器中,完成文件的上传存储;s5:文件存储完成;与现有技术相比,本发明的有益效果为:本发明提出的基于策略模式的文件存储管理的方法,创建文件服务器客户端相对应的策略类,将待存储文件的存储类型参数和策略类中的参数匹配,匹配到对应的文件存储器客户端的存储策略类,通过存储策略类调用存储策略类对应的文件服务器客户端中的功能函数,将待存储文件上传到对应的文件服务器中,完成文件的上传存储;通过策略类来管理所支持的文件服务器,不需要选择一次服务器就改一次代码,只要策略类支持,可以随意切换文件存储服务器,无需修改代码,对业务代码独立开来,无耦合,维护代码成本低;同时方便扩展后续支持更多类型文件服务器,只需修改storagetype策略类,以及增加文件服务实现类即可,减少工作量的同时降低了出错风险,提高了效率。
实施方式
6.为使对本发明的目的、构造、特征、及其功能有进一步的了解,兹配合实施例详细说明如下。
7.一种基于策略模式的文件存储管理的方法,包括以下步骤:s1:设置策略接口;工程师在策略接口中定义一系列文件功能函数;所述文件功能函数包括上传文件、删除文件、下载文件等;所述上传文件功能函数包括直接将文件流上传到文件存储器的上传文件功能函数和通过文件路径上传文件到文件存储器的上传文件功能函数;通过设置两种上传文件功能函数,当文件为一般文件时,通过得到文件路径上传文件到文件服务器中;当文件较大时,通过multipartfile组件获取文件流,将文件流上传到文件服务器中,满足不同大小文件上传到文件服务器中的需求;s2:获取文件服务器客户端;所述文件服务器客户端包括minio客户端、阿里oss客户端、本地oss客户端、阿里oss客户端、七牛存储客户端、腾讯oss客户端等;工程师通过spring容器获取各个文件服务器客户端,封装文件服务器客户端,生成文件服务器客户端具体操作的工具类;所述文件服务器客户端具体操作的工具类包括功能函数的具体的实现方法;所述文件服务器客户端与对应的文件服务器绑定;s3:创建具体的存储策略类;工程师创建文件服务器客户端相对应的文件存储策略类;
所述文件存储策略类包括minio存储策略类、阿里oss存储策略类、本地oss存储策略类、七牛存储策略类、腾讯oss存储策略类等;所述各个存储策略类中包括具体的服务器类型参数值,每个存储策略类中的服务器类型参数值唯一;s4:将待存储文件与存储策略类进行匹配;工程师将项目研发中的待存储文件存储到对应的文件服务器中;所述待存储文件包括文件存储类型参数;将待存储文件的文件存储类型参数与存储策略类中的服务器类型参数值进行匹配,如果待存储文件的文件存储类型参数与创建的具体存储策略类中的服务器类型参数值相同,则通过getstrategy组件获取此存储策略类,通过存储策略类调用存储策略类对应的文件服务器客户端中的功能函数对待存储文件进行相关操作;例如:通过调用文件服务器客户端中的上传文件功能函数将待存储文件上传到对应的文件服务器中;通过调用文件服务器客户端中的下载文件功能函数将待存储文件下载到对应的文件服务器中;通过调用文件服务器客户端中的删除文件功能函数删除对应的文件服务器中的需要删除的文件;s5:文件存储完成;本发明已由上述相关实施例加以描述,然而上述实施例仅为实施本发明的范例。必需指出的是,已揭露的实施例并未限制本发明的范围。相反地,在不脱离本发明的精神和范围内所作的更动与润饰,均属本发明的专利保护范围。


技术特征:
1.一种基于策略模式的文件存储管理的方法,其特征在于:包括以下步骤:s1:设置策略接口;工程师在策略接口中定义一系列文件功能函数;所述文件功能函数包括上传文件功能函数、删除文件功能函数、下载文件功能函数;s2:获取文件服务器客户端;所述文件服务器客户端包括minio客户端、阿里oss客户端、本地oss客户端、阿里oss客户端、七牛存储客户端、腾讯oss客户端;工程师通过spring容器获取各个文件服务器客户端,封装文件服务器客户端,生成文件服务器客户端具体操作的工具类;所述文件服务器客户端具体操作的工具类包括功能函数的具体的实现方法;s3:创建具体的存储策略类;工程师创建文件服务器客户端相对应的文件存储策略类;所述文件存储策略类包括minio存储策略类、阿里oss存储策略类、本地oss存储策略类、七牛存储策略类、腾讯oss存储策略类;所述各个存储策略类中包括具体的服务器类型参数值;s4:将待存储文件与存储策略类进行匹配;工程师将项目研发中的待存储文件存储到对应的文件服务器中;所述待存储文件包括文件存储类型参数;待存储文件的文件存储类型参数与存储策略类中的服务器类型参数值进行匹配,匹配完成,则通过存储策略类将待存储文件上传到文件服务器中;s5:文件存储完成。2.如权利要求1所述的一种基于策略模式的文件存储管理的方法,其特征在于:所述上传文件功能函数包括直接将文件流上传到文件存储器的上传文件功能函数和通过文件路径上传文件到文件存储器的上传文件功能函数。3.如权利要求1所述的一种基于策略模式的文件存储管理的方法,其特征在于:步骤s3中,每个存储策略类中的服务器类型参数值唯一。4.如权利要求1所述的一种基于策略模式的文件存储管理的方法,其特征在于:步骤s4中,具体的实现方法为:将待存储文件的文件存储类型参数与存储策略类中的服务器类型参数值进行匹配,如果待存储文件的文件存储类型参数与创建的具体存储策略类中的服务器类型参数值相同,则通过getstrategy组件获取此存储策略类,通过存储策略类调用存储策略类对应的文件服务器客户端中的功能函数,通过调用文件服务器客户端中的上传文件功能函数将待存储文件上传到对应的文件服务器中,完成文件的上传存储。5.如权利要求1所述的一种基于策略模式的文件存储管理的方法,其特征在于:步骤s4中,还可以通过存储策略类调用文件服务器客户端中的下载文件功能函数将待存储文件下载到对应的文件服务器中;通过存储策略类调用文件服务器客户端中的删除文件功能函数删除对应的文件服务器中的需要删除的文件。

技术总结
本发明提供一种基于策略模式的文件存储管理方法,包括以下步骤:S1:设置策略接口;S2:获取文件服务器客户端;S3:创建具体的存储策略类;S4:将待存储文件与策略类进行匹配;S5:文件存储完成;本发明提出的基于策略模式的文件存储管理的方法,创建文件服务器客户端相对应的策略类,将待存储文件的存储类型参数和策略类中的参数匹配,匹配到对应的文件存储器客户端的存储策略类,通过存储策略类调用存储策略类对应的文件服务器客户端中的功能函数,将待存储文件上传到对应的文件服务器中,完成文件的上传存储;不需要选择一次服务器就改一次代码,只要策略类支持,可以随意切换文件存储服务器,无需修改代码,维护代码成本低。维护代码成本低。


技术研发人员:杨松贵 陈实
受保护的技术使用者:南京维拓科技股份有限公司
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐