本申请提供了一种云存储系统中大文件的处理方法,确定目标文件的大小;当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;将所述一组片段对象和一个清单对象均上传到云存储系统中。本申请中将大文件分割成一组片段对象的形式,每个片段对象的大小均满足云存储系统中对文件大小的要求,这样,就可以将超过云存储系统中预设大小的文件上传到云存储系统中,所述清单对象记录了所有片段对象的信息,所述一组片段对象和一个清单对象即代表了整个大文件,解决了现有技术中云存储系统中Switf无法上传大于5GB的文件的问题。
【技术实现步骤摘要】
本申请涉及云存储领域,特别涉及一种云存储系统中大文件的处理方法及系统。
技术介绍
随着技术的发展,人们对云存储系统中大文件的处理方法越来越关注。目前,Swift对象存储系统可以存储的最大对象为5GB,超过这个大小的文件将不能上传到Swift中,同时GB级的大文件上传和下载比较慢。Swift己有的大文件解决方案:静态大对象(Static Large Objects)存储方案和动态大对象(Dynamic Large Objects)存储方案,都是Swift服务端的存储方案,在灵活性、扩展性等方面存在一定的不足。因此,如何有效的对云存储系统中大文件进行处理,解决云存储系统中Switf无法上传大于5GB的文件的问题是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请所要解决的技术问题是提供一种云存储系统中大文件的处理方法及系统,解决了现有技术中云存储系统中Switf无法上传大于5GB的文件的问题。其具体方案如下:—种云存储系统中大文件的处理方法,该方法包括:确定目标文件的大小;当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;将所述一组片段对象和一个清单对象均上传到云存储系统中。上述的方法,优选的,将所述一组片段对象和一个清单对象均上传到云存储系统中,包括:计算所述一组片段对象中每个片段的MD5校验值;异步上传每个片段对象;当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值;上传所述清单对象。上述的方法,优选的,所述上传所述清单对象,包括:将所述一组片段对象中的所有信息序列化为JSON格式的字符串,作为所述清单对象的内容;计算所述JSON格式的字符串的MD5校验值;上传所述清单对象的内容。上述的方法,优选的,还包括:从所述云存储系统中获取对象元数据;当所述对象元数据为清单对象元数据时,解析JSON格式的片段对象信息;下载所述JSON格式的片段对象信息中对应的所有片段对象;将下载的所有片段对象合并成一个大文件。上述的方法,优选的,还包括:校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。—种云存储系统中大文件的处理系统,该系统包括:确定单元,用于确定目标文件的大小;分割单元,用于当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;上传单元,用于将所述一组片段对象和一个清单对象均上传到云存储系统中。上述的系统,优选的,所述上传单元包括:第一计算单元,用于计算所述一组片段对象中每个片段的MD5校验值;第一上传子单元,用于异步上传每个片段对象;第二计算单元,用于当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值;第二上传子单元,用于上传所述清单对象。上述的系统,优选的,所述第二上传子单元包括:序列化单元,用于将所述一组片段对象中的所有信息序列化为JSON格式的字符串,作为所述清单对象的内容;第三计算单元,用于计算所述JSON格式的字符串的MD5校验值;第三上传子单元,用于上传所述清单对象的内容。上述的系统,优选的,还包括:获取单元,用于从所述云存储系统中获取对象元数据;解析单元,用于当所述对象元数据为清单对象元数据时,解析JSON格式的片段对象信息;下载单元,用于下载所述JSON格式的片段对象信息中对应的所有片段对象;合并单元,用于将下载的所有片段对象合并成一个大文件。上述的系统,优选的,还包括:校验单元,用于校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。本申请提供的一种云存储系统中大文件的处理方法中,确定目标文件的大小;当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;将所述一组片段对象和一个清单对象均上传到云存储系统中。本申请中将大文件分割成一组片段对象的形式,每个片段对象的大小均满足云存储系统中对文件大小的要求,这样,就可以将超过云存储系统中预设大小的文件上传到云存储系统中,所述清单对象记录了所有片段对象的信息,所述一组片段对象和一个清单对象即代表了整个大文件,解决了现有技术中云存储系统中Switf无法上传大于5GB的文件的问题。【附图说明】为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的一种云存储系统中大文件的处理方法实施例1的流程图;图2是本申请的一种云存储系统中大文件的处理方法具体实现的流程图;图3是本申请的一种云存储系统中大文件的处理方法实施例2的流程图;图4是本申请的一种云存储系统中大文件的处理系统实施例1的结构示意图;图5是本申请的一种云存储系统中大文件的处理系统实施例2的结构示意图。【具体实施方式】下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参考图1,示出了本申请一种云存储系统中大文件的处理方法实施例1的流程图,可以包括以下步骤:步骤SlOl:确定目标文件的大小。本申请中,在将目标文件上传到云存储系统中之前,需要确定文件的大小,当文件属于小文件范畴时,不需要对文件进行分割等处理,而是直接把文件上传到云存储系统即可,在上传之前,还需要计算文件的MD5校验值;当文件属于大文件的范畴时,按照后续大文件的处理方法对文件进行处理。步骤S102:当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象。片段对象:把一个大文件拆分成小的片段,分别作为一个单独的对象上传这些片段,这些对象称为片段对象。在具体的实现中,并不一定要将大文件拆分成小文件再上传到云存储系统中,而是通过直接读取大文件指定字节区间的数据。清单对象:清单对象的功能是记录构成一个大文件的所有片段对象的信息,包括片段对象所在的容器名称、片段对象的名字、片段对象在大文件中的偏移量(Offset),片段对象的二进制数据长度。当文件的大小超过预设大小时,则目标文件为大文件,不能直接将这个文件上传到云存储系统中,此时,需要对所述文件进行处理。根据片段对象和清单对象两种对象信息,可以把一个大文件拆分为一组片段,并且可以把一组片段重新合成为原文件。片段对象与一般的对象没有任何区别,但是清单对象很特别,它代表了磁盘中的大文件。当下载清单对象时,需要把所有的片段对象连接成一个整体返回给用户;当查询清单对象的信息时,清单对象的元数据代表了大文件的相关属性。步骤S103:将所述一组片段对象和一个清单对象均上传到云存储系统中。—个大文件在云存储端由唯一的清单对象和一组片段对象构成。文件往往有一些属性需要存储在云存储端,由于清单对象与原文件是一一对应关系,因此可以用清单对象的元数据代表原文件的元数据,即原文件的相关属性。本申请提供的一种云存储系统中大文件的处理方法中,将大文件分割成一组片段对象的形式,每个片段对象的大小均满足本文档来自技高网...
【技术保护点】
一种云存储系统中大文件的处理方法,其特征在于,该方法包括:确定目标文件的大小;当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;将所述一组片段对象和一个清单对象均上传到云存储系统中。
【技术特征摘要】
【专利技术属性】
技术研发人员:张延枫,徐艳秋,殷武烁,焦浩霖,李定达,
申请(专利权)人:浪潮北京电子信息产业有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。