System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于分布式部署非结构化存储的超大附件上传方法技术_技高网

一种用于分布式部署非结构化存储的超大附件上传方法技术

技术编号:40034495 阅读:5 留言:0更新日期:2024-01-16 18:45
本发明专利技术公开了一种用于分布式部署非结构化存储的超大附件上传方法,涉及互联网技术领域,包括如下步骤:通过客户端上传文件,判断文件大小,小于设定值时,文件直接上传,若高于则采用CRC32算法生成大文件唯一标识key,检查数据库中是否存在所述标识key,若存在则直接提示该文件已上传,若不存在则将该文件按指定大小切分为多个分片并上传至后端,判断分片是否存在系统所应用的非结构化存储平台中,若不存在则上传此分片到服务器暂存区,待所有分片上传完成后将所有分片合并成一个完整文件,并验证文件的完成性,上传完毕。本发明专利技术比现有方案更安全且高效,可有效解决分部署多节点部署模式下分片请求分散的问题。

【技术实现步骤摘要】

本专利技术属于互联网,具体涉及一种用于分布式部署非结构化存储的超大附件上传方法


技术介绍

1、当前市场上对于web管理系统中大附件上传主要通过md 5加密后将文件分片上传到后端,在后端校验后合并,从而完成大附件的上传。如中国专利cn202310174066.1公开了一种基于web页面的超大附件上传方法,首先将整体文件通过md5算法生成的唯一标识传递到后端,后端使用该标识来判断是否已经存在一个一模一样的文件,若存在则直接提示该文件已上传,若不存在则将该文件切分成为一个个小的分片,每个分片使用md5生成一个分片唯一标识,首先检测分片唯一标识是否已经存在于数据库中,若存在则表示该分片已存在于服务器暂存区中,若不存在则上传此分片到服务器暂存区,待所有分片上传完成后将所有分片合并成一个完整文件,然后删除暂存区里的文件碎片跟数据库里保存的文件唯一标识和分片唯一标识,这样就完成了一次大文件上传。

2、现有技术简单易实现,对性能安全架构等要求不高的项目都可以使用,但存在以下缺点:1、md5编码速度较慢,不适用高并发的场景;2、当前很多公司都将文件存储等服务以类似非结构化存储平台这样的公共平台的形式搭建,文件本身不在系统所在的服务器存储,大附件到了后端后还需要再传到非结构化存储平台中,存在上传失败或超时的风险;3、当今系统很多都是采用分布式多节点的部署方案,前端的分片请求会随机将分片传输到后端的不同节点,后端无法进行合并。为此,我们提出了一种适用于分布式部署+非结构化存储的超大附件上传方法。


技术实现思路

1、本专利技术的目的是为了解决现有技术中存在上述的缺点,而提出的一种用于分布式部署非结构化存储的超大附件上传方法。该用于分布式部署非结构化存储的超大附件上传方法,比现有方案更安全且高效,可有效解决分部署多节点部署模式下分片请求分散的问题。

2、为了实现上述目的,本专利技术采用了如下技术方案:

3、设计一种用于分布式部署非结构化存储的超大附件上传方法,包括,包括如下步骤:

4、步骤1、通过客户端上传文件;

5、步骤2、进行分片判断,根据上传的文件,判断文件大小,文件小于设定值时,文件直接上传,并返回上传结果,上传完毕,否则,进入下一步;

6、步骤3、采用crc32算法生成大文件唯一标识key;

7、步骤4、检查数据库中是否存在所述标识key,若存在则直接提示该文件已上传,并返回上传结果,上传完毕,若不存在则将该文件按指定大小切分为多个分片并上传至后端;

8、步骤5、判断分片是否存在系统所应用的非结构化存储平台中,若不存在则上传此分片到服务器暂存区;

9、步骤6、待所有分片上传完成后将所有分片合并成一个完整文件,并验证文件的完成性,通过验证后,上传完毕。

10、进一步的,在步骤四中,所述检查数据库中存在所述标识key时,将已存在附件拷贝并与当前业务关联,返回上传成功。

11、进一步的,在步骤4中,分片上传采用ur_hash策略将同一附件的分片上传请求指向同一后端服务器节点。

12、进一步的,在步骤5中,判断分片是否存时,每个分片均可校验分片是否存在于服务缓存区,实现断点续传。

13、进一步的,在步骤6中,在返回上传结果后,删除文件存储平台里的文件碎片、数据库里保存的文件唯一标识和分片唯一标识。

14、本专利技术提出的一种用于分布式部署非结构化存储的超大附件上传方法,与现有技术相比,有益效果在于:通过在前端将文件分片然后上传,在后端通过将分片合并实现超大附件的上传,避免因网络带宽、请求超时和系统网关超时等原因的限制导致大附件上传失败。请求首先将大文件通过crc32算法生成的大文件唯一标识传递到后端,后端通过该标识访问数据库来判断是否已经存在同样的文件,若存在则直接提示该文件已上传,若不存在则将该文件按指定大小切分成为一个个小的分片并上传后端,每个分片使用crc32算法生成一个分片唯一标识,首先检测分片唯一标识是否已经存在于数据库中,若存在则表示该分片已存在于系统所应用的非结构化存储平台中,若不存在则上传此分片到服务器暂存区,待所有分片上传完成后将所有分片合并成一个完整文件,然后删除暂存区里的文件碎片跟数据库里保存的文件唯一标识和分片唯一标识,这样就完成了一次大文件上传。具体地:

15、(1)、本专利技术采用crc32算法生成的大文件唯一标识传递到后端,比现有方案更安全且高效。

16、(2)、本专利技术利用调整负载均衡如nginx服务的配置策略,采用url_hash模式,在前端分片上传到后端服务器时,实现同一大附件的分片上传请求至同一后端服务节点,解决分布式多节点部署模式下分片请求分散的问题。

17、(3)、本专利技术在后端合并完所有分片时,采用crc32算法获取合并后文件的key,与前端传来的进行对比,完成文件完整性校验。

本文档来自技高网...

【技术保护点】

1.一种用于分布式部署非结构化存储的超大附件上传方法,包括,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤四中,所述检查数据库中存在所述标识key时,将已存在附件拷贝并与当前业务关联,返回上传成功。

3.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤五中,分片上传采用ur_hash策略将同一附件的分片上传请求指向同一后端服务器节点。

4.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤五中,判断分片是否存时,每个分片均可校验分片是否存在于服务缓存区,实现断点续传。

5.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤六中,在返回上传结果后,删除文件存储平台里的文件碎片、数据库里保存的文件唯一标识和分片唯一标识。

【技术特征摘要】

1.一种用于分布式部署非结构化存储的超大附件上传方法,包括,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤四中,所述检查数据库中存在所述标识key时,将已存在附件拷贝并与当前业务关联,返回上传成功。

3.根据权利要求1所述的一种用于分布式部署非结构化存储的超大附件上传方法,其特征在于,在步骤五中,分片上传采用ur_hash策略将同一...

【专利技术属性】
技术研发人员:刘敏郦明栋
申请(专利权)人:南京季利达电子科技有限责任公司
类型:发明
国别省市:

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

1