太阳城集团

  • / 14
  • 下载费用:30 金币  

一种云存储系统中大文件的处理方法及系统.pdf

关 键 词:
一种 存储系统 文件 处理 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201510673854.0

申请日:

2015.10.16

公开号:

太阳城集团CN105224257A

公开日:

2016.01.06

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 3/06申请日:20151016|||公开
IPC分类号: G06F3/06 主分类号: G06F3/06
申请人: 浪潮(北京)电子太阳城集团产业有限公司
发明人: 张延枫; 徐艳秋; 殷武烁; 焦浩霖; 李定达
地址: 100085 北京市海淀区上地太阳城集团路2号2-1号C栋1层
优先权:
专利代理机构: 北京集佳知识产权代理有限公司 11227 代理人: 罗满
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201510673854.0

授权太阳城集团号:

|||

法律状态太阳城集团日:

太阳城集团2016.02.03|||2016.01.06

法律状态类型:

实质审查的生效|||公开

摘要

本申请提供了一种云存储系统中大文件的处理方法,确定目标文件的大小;当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;将所述一组片段对象和一个清单对象均上传到云存储系统中。本申请中将大文件分割成一组片段对象的形式,每个片段对象的大小均满足云存储系统中对文件大小的要求,这样,就可以将超过云存储系统中预设大小的文件上传到云存储系统中,所述清单对象记录了所有片段对象的太阳城集团,所述一组片段对象和一个清单对象即代表了整个大文件,解决了现有技术中云存储系统中Switf无法上传大于5GB的文件的问题。

权利要求书

权利要求书
1.  一种云存储系统中大文件的处理方法,其特征在于,该方法包括:
确定目标文件的大小;
当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;
将所述一组片段对象和一个清单对象均上传到云存储系统中。

2.  根据权利要求1所述的方法,其特征在于,将所述一组片段对象和一个清单对象均上传到云存储系统中,包括:
计算所述一组片段对象中各个片段的MD5校验值;
异步上传每个片段对象;
当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值;
上传所述清单对象。

3.  根据权利要求2所述的方法,其特征在于,所述上传所述清单对象,包括:
将所述一组片段对象中的所有太阳城集团序列化为JSON格式的字符串,作为所述清单对象的内容;
计算所述JSON格式的字符串的MD5校验值;
上传所述清单对象的内容。

4.  根据权利要求3所述的方法,其特征在于,还包括:
从所述云存储系统中获取对象元数据;
当所述对象元数据为清单对象元数据时,解析JSON格式的片段对象太阳城集团;
下载所述JSON格式的片段对象太阳城集团中对应的所有片段对象;
将下载的所有片段对象合并成一个大文件。

5.  根据权利要求4所述的方法,其特征在于,还包括:
校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。

6.  一种云存储系统中大文件的处理系统,其特征在于,该系统包括:
确定单元,用于确定目标文件的大小;
分割单元,用于当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象;
上传单元,用于将所述一组片段对象和一个清单对象均上传到云存储系统中。

7.  根据权利要求6所述的系统,其特征在于,所述上传单元包括:
第一计算单元,用于计算所述一组片段对象中各个片段的MD5校验值;
第一上传子单元,用于异步上传每个片段对象;
第二计算单元,用于当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值;
第二上传子单元,用于上传所述清单对象。

8.  根据权利要求7所述的系统,其特征在于,所述第二上传子单元包括:
序列化单元,用于将所述一组片段对象中的所有太阳城集团序列化为JSON格式的字符串,作为所述清单对象的内容;
第三计算单元,用于计算所述JSON格式的字符串的MD5校验值;
第三上传子单元,用于上传所述清单对象的内容。

9.  根据权利要求8所述的系统,其特征在于,还包括:
获取单元,用于从所述云存储系统中获取对象元数据;
解析单元,用于当所述对象元数据为清单对象元数据时,解析JSON格式的片段对象太阳城集团;
下载单元,用于下载所述JSON格式的片段对象太阳城集团中对应的所有片段对象;
合并单元,用于将下载的所有片段对象合并成一个大文件。

10.  根据权利要求9所述的系统,其特征在于,还包括:
校验单元,用于校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。

说明书

说明书一种云存储系统中大文件的处理方法及系统
技术领域
本申请涉及云存储领域,特别涉及一种云存储系统中大文件的处理方法及系统。
背景技术
随着技术的发展,人们对云存储系统中大文件的处理方法越来越关注。
目前,Swift对象存储系统可以存储的最大对象为5GB,超过这个大小的文件将不能上传到Swift中,同时GB级的大文件上传和下载比较慢。Swift己有的大文件解决方案:静态大对象(StaticLargeObjects)存储方案和动态大对象(DynamicLargeObjects)存储方案,都是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的流程图,可以包括以下步骤:
步骤S101:确定目标文件的大小。
本申请中,在将目标文件上传到云存储系统中之前,需要确定文件的大小,当文件属于小文件范畴时,不需要对文件进行分割等处理,而是直接把文件上传到云存储系统即可,在上传之前,还需要计算文件的MD5校验值;当文件属于大文件的范畴时,按照后续大文件的处理方法 对文件进行处理。
步骤S102:当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象。
片段对象:把一个大文件拆分成小的片段,分别作为一个单独的对象上传这些片段,这些对象称为片段对象。
在具体的实现中,并不一定要将大文件拆分成小文件再上传到云存储系统中,而是通过直接读取大文件指定字节区间的数据。
清单对象:清单对象的功能是记录构成一个大文件的所有片段对象的太阳城集团,包括片段对象所在的容器名称、片段对象的名字、片段对象在大文件中的偏移量(Offset),片段对象的二进制数据长度。
当文件的大小超过预设大小时,则目标文件为大文件,不能直接将这个文件上传到云存储系统中,此时,需要对所述文件进行处理。
根据片段对象和清单对象两种对象太阳城集团,可以把一个大文件拆分为一组片段,并且可以把一组片段重新合成为原文件。
片段对象与一般的对象没有任何区别,但是清单对象很特别,它代表了磁盘中的大文件。当下载清单对象时,需要把所有的片段对象连接成一个整体返回给用户;当查询清单对象的太阳城集团时,清单对象的元数据代表了大文件的相关属性。
步骤S103:将所述一组片段对象和一个清单对象均上传到云存储系统中。
一个大文件在云存储端由唯一的清单对象和一组片段对象构成。
文件往往有一些属性需要存储在云存储端,由于清单对象与原文件是一一对应关系,因此可以用清单对象的元数据代表原文件的元数据,即原文件的相关属性。
本申请提供的一种云存储系统中大文件的处理方法中,将大文件分割成一组片段对象的形式,每个片段对象的大小均满足云存储系统中对文件大小的要求,这样,就可以将超过云存储系统中预设大小的文件上传到云存储系统中,所述清单对象记录了所有片段对象的太阳城集团,所述一组片段对象和一个清单对象即代表了整个大文件,解决了现有技术中云存 储系统中Switf无法上传大于5GB的文件的问题。
参考图2,示出了本申请一种云存储系统中大文件的处理方法具体实现的流程图。
在具体实现过程中,所述将所述一组片段对象和一个清单对象均上传到云存储系统中,包括:
计算所述一组片段对象中每个片段的MD5校验值。
异步上传每个片段对象。
当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值;
上传所述清单对象。
所述上传所述清单对象,包括:
将所述一组片段对象中的所有太阳城集团序列化为JSON格式的字符串,作为所述清单对象的内容。
为了便于组织太阳城集团,把所有的片段对象太阳城集团序列化为JSON格式的字符串,作为清单对象的内容。所以清单对象的内容就是JSON格式的所有片段对象太阳城集团的列表。根据容器名称和片段对象的名称,可以定位云存储端片段对象的位置,根据偏移量和片段大小,可以定位片段对象在原文件中的位置,所以JSON格式的片段太阳城集团列表中,片段太阳城集团不需要按照它们在原文件中的顺序排列。
计算所述JSON格式的字符串的MD5校验值。
上传所述清单对象的内容。
为了便于进行文件的校验和下载,清单对象必须具备以下两个自定义:
元数据。
Object-Meta-Echk:原始文件的MD5校验值,用于下载文件后对下载到磁盘上的文件进行MD5校验。
Object-Meta-Length:原始文件的总长度。
对象存储服务Swift定义了对象的很多固有元数据,除此之外,所有对象(包括片段对象和清单对象)必须具备以下两个元数据:
Content-Type:清单对象的内容类型为JSON格式,所以其值为 Application/json;一般对象的值为application/octet-stream,虚拟目录对象的值为application/vnd.swift-cloud.dir。
Echk:一般对象的Echk值为整个文件的MD5校验值,片段对象的Echk值为文件片段的MD5校验值,清单对象的Echk值为JSON字符串的MD5校验值。上传文件时,在HttpHeader中添加Echk值,Swift会在上传结束后对比服务器端的对象的MD5值与Echk值,以确保传输前后数据的一致性。
在上传下载过程中,为保证数据在客户端、服务器端的一致性,上传下载必须按照一定的流程,遵循一致的协议。上传文件时,需要先根据文件的大小确定是否需要分割上传,如果需要分割,将文件转换为一组片段对象和一个清单对象。为了确保数据在客户端和云存储端是一致的,上传文件、文件片段和清单对象时,都要计算数据的MD5校验值,在上传HTTP请求的Header中加入Echk键值对,云存储端Swift会根据Echk值完成数据的一致性校验。在上传清单对象时,除了计算其JSON字符串的MD5校验值,还需要计算整个大文件的MD5校验值,作为X-Object-Meta-Echk键值对加入Http请求的头部中。
参考图3,示出了本申请一种云存储系统中大文件的处理方法实施例2的流程图,可以包括以下步骤:
步骤S301:从所述云存储系统中获取对象元数据。
步骤S302:判断所述对象元数据是否为清单元数据,若是,则执行步骤S303:解析JSON格式的片段对象太阳城集团,若否,则执行步骤S307。
步骤S304:下载所述JSON格式的片段对象太阳城集团中对应的片段对象。
步骤S305:将下载的所有片段对象合并成一个大文件。
步骤S306:判断全部片段是否下载完成,若是,则执行步骤S308,否则执行步骤S304。
步骤S307:下载一般对象。
步骤S308:校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。
下载文件的核心流程与上传文件的流程相对应。云存储中的清单对象 代表了一个大文件,其记录了组成大文件的片段对象的相关太阳城集团,云存储中的一般对象可能代表了一个没有分割上传的文件,也可能代表了一个大文件的一个片段。所以,对于待下载的云端对象,必须先判断此对象是清单对象还是一般对象,然后再分别做不同的处理。
当对象为一般对象时,直接下载此对象,当对象为清单对象时,需要经过处理后下载,但是,两者下载完成后均需要比较下载后的文件的MD5校验值和原文件的MD5校验值,以确保文件的一致性。如果文件对应一个对象,则文件的MD5校验值为对象的Echk值,如果文件对应一个清单对象和一组片段对象,则文件的MD5校验值为清单对象的X-Object-Meta-Echk值。
与上述本申请一种云存储系统中大文件的处理方法实施例1所提供的方法相对应,参见图4,本申请还提供了一种云存储系统中大文件的处理系统实施例1,在本实施例中,该系统包括:
确定单元401,用于确定目标文件的大小。
分割单元402,用于当目标文件的大小超过预设大小时,对所述目标文件进行分割,转换成一组片段对象和一个清单对象。
上传单元403,用于将所述一组片段对象和一个清单对象均上传到云存储系统中。
所述上传单元包括:
第一计算单元,用于计算所述一组片段对象中每个片段的MD5校验值。
第一上传子单元,用于异步上传每个片段对象。
第二计算单元,用于当所有片段对象均上传完毕时,计算整个目标文件的MD5校验值。
第二上传子单元,用于上传所述清单对象。
所述第二上传子单元包括:
序列化单元,用于将所述一组片段对象中的所有太阳城集团序列化为JSON格式的字符串,作为所述清单对象的内容。
第三计算单元,用于计算所述JSON格式的字符串的MD5校验值。
第三上传子单元,用于上传所述清单对象的内容。
参见图5,本申请还提供了一种云存储系统中大文件的处理系统实施例2,在本实施例中,该系统包括:
获取单元501,用于从所述云存储系统中获取对象元数据。
解析单元502,用于当所述对象元数据为清单对象元数据时,解析JSON格式的片段对象太阳城集团。
下载单元503,用于下载所述JSON格式的片段对象太阳城集团中对应的所有片段对象。
合并单元504,用于将下载的所有片段对象合并成一个大文件。
校验单元505,用于校验磁盘上的文件的MD5校验值与上传时记录的整个文件的MD5校验值。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样 的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
太阳城集团以上对本申请所提供的一种云存储系统中大文件的处理方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

太阳城集团本文
本文标题:一种云存储系统中大文件的处理方法及系统.pdf
链接地址:http://zh228.com/p-6397732.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');