一种分片存储方法及用户终端的制作方法

文档序号:7797512阅读:120来源:国知局
一种分片存储方法及用户终端的制作方法
【专利摘要】本发明提供一种分片存储方法及用户终端,用户终端根据文件的容量值以及最大容量值将该文件分成至少一个子文件,该至少一个子文件中每个子文件具有相同的最大容量值,将该至少一个子文件按照该文件中存储的数据的顺序进行排列,为该至少一个子文件中每个子文件分别对应创建一个对象,将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,每个子文件的容量值之和等于文件的容量值,这样只上传或者下载文件中的部分数据,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
【专利说明】—种分片存储方法及用户终端
【技术领域】
[0001]本发明实施例涉及通信【技术领域】,尤其涉及一种分片存储方法及用户终端。
【背景技术】
[0002]近年来,对象存储系统被广泛运用于海量数据的存储,对象存储系统是在一个扁平化的容器组织中存储文件,一个存储的文件对应一个唯一的识别码,并使用唯一的识别码来检索存储的文件,对象存储系统包括用户终端以及对象存储服务器,用户终端中包含文件语义的适配层,该文件语义的适配层用于将传统的文件操作转化为对象操作,例如:创建一个文件转化为创建一个对象;对目录的查询转化为对桶的前缀查询。
[0003]在对象存储系统中,无论是上传还是下载整个文件或者该文件的部分内容均需要将该完整的文件转成对象进行上传或者下载,由于每次都需要上传或者下载完整的文件内容,进而造成网络带宽极大浪费和用户终端性能的损耗。

【发明内容】

[0004]鉴于现有技术的以上缺陷,本发明提供一种分片存储方法及用户终端,解决了现有技术中,每次都需要上传或者下载完整的对象,而造成网络带宽极大浪费和用户终端性能损耗的问题。
[0005]本发明实施例的第一方面提供了一种分片存储方法,包括:
[0006]用户终端根据文件的容量值以及最大容量值将所述文件分成至少一个子文件,其中所述至少一个子文件中每个子文件具有相同的所述最大容量值,且所述最大容量值为固定值;
[0007]将所述至少一个子文件按照所述文件中存储的数据的顺序进行排列;
[0008]为所述至少一个子文件中每个子文件分别对应创建一个对象,并将所述每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载所述文件中的部分数据时,仅上传或者下载所述部分数据所在子文件对应的对象;
[0009]所述每个子文件的容量值之和等于所述文件的容量值。
[0010]结合本发明实施例的第一方面,在本发明实施例的第一方面的第一种实施方式中,包括:当所述用户在所述文件中写入数据时,根据写偏移、写长度以及所述最大容量值判断所述用户写入的数据是否超出已分成的所述至少一个子文件;
[0011]若没有超出,则根据写偏移、写长度以及所述最大容量值确定所述用户写入的数据所在的子文件,其中,所述写入的数据所在的子文件属于所述至少一子文件;
[0012]将所述写入的数据所在的子文件标识为第一标识;
[0013]当需要上传时,将具有所述第一标识的子文件所对应的对象上传至所述对象存储服务器中。
[0014]结合本发明实施例的第一方面的第一种实施方式,在本发明实施例的第一方面的第二种实施方式中,包括:[0015]若超出,则根据所述写偏移、所述写长度及所述最大容量值确定所述用户写入的数据所在的子文件以及所述用户写入数据的超出值;
[0016]根据所述超出值及所述最大容量值确定增加子文件的个数,并为每个所述增加的子文件对应创建一个对象,其中每个所述增加的子文件最多可存储量的值为所述最大容量值;
[0017]将所述写入的数据所在的子文件标识为第一标识;
[0018]当需要上传时,将每个所述增加的子文件对应的对象和具有所述第一标识的子文件所对应的对象上传到所述对象存储服务器中。
[0019]结合本发明实施例的第一方面,或第一方面的第一种实施方式,或第一方面的第二种实施方式,在本发明实施例的第一方面的第三种实施方式中,包括:当所述用户在所述文件中读取数据时,根据读偏移、读长度及所述最大容量值算出所述用户读取的数据所在的子文件,所述用户读取的数据所在的子文件属于所述文件的子文件;
[0020]将所述用户读取的数据所在的子文件标识为第二标识。
[0021 ] 结合本发明实施例的第一方面的第三种实施方式,在本发明实施例的第一方面的第四种实施方式中,包括:当需要下载时,根据所述读偏移、所述读长度和所述第二标识在所述对象存储服务器中读取具有所述第二标识的子文件所对应的对象。
[0022]本发明实施例的第二方面提供了一种用户终端,包括:
[0023]划分单元,用于根据文件的容量值以及最大容量值将所述文件分成至少一个子文件,其中所述至少一个子文件中每个子文件具有相同的所述最大容量值,且所述最大容量值为固定值;
[0024]排序单元,用于将所述至少一个子文件按照所述文件中存储的数据的顺序进行排列;
[0025]第一创建单元,用于为所述至少一个子文件中每个子文件分别对应创建一个对象;
[0026]第一发送单元,用于将所述每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载所述文件中的部分数据时,仅上传或者下载所述部分数据所在子文件对应的对象,所述每个子文件的容量值之和等于所述文件的容量值。
[0027]结合本发明实施例的第二方面,在本发明实施例的第二方面的第一种实施方式中,包括:判断单元,用于在所述用户在所述文件中写入数据时,根据写偏移、写长度以及所述最大容量值判断所述用户写入的数据是否超出已分成的所述至少一个子文件;
[0028]第一确定单元,用于在所述判断单元的判断结果为没有超出时,根据写偏移、写长度以及所述最大容量值确定所述用户写入的数据所在的子文件,其中,所述写入的数据所在的子文件属于所述至少一子文件;
[0029]第一标识单元,用于将所述写入的数据所在的子文件标识为第一标识;
[0030]第二发送单元,用于在需要上传时,将具有所述第一标识的子文件所对应的对象上传至所述对象存储服务器中。
[0031 ] 结合本发明实施例的第二方面的第一种实施方式,在本发明实施例的第二方面的第二种实施方式中,包括:第二确定单元,用于在所述判断单元的判断结果为超出时,根据所述写偏移、所述写长度及所述最大容量值确定所述用户写入的数据所在的子文件以及所述用户写入数据的超出值;
[0032]第三确定单元,用于根据所述超出值及所述最大容量值确定增加子文件的个数,其中每个所述增加的子文件最多可存储量的值为所述最大容量值;
[0033]第二创建单元,用于为每个所述增加的子文件对应创建一个对象;
[0034]第二标识单元,用于将所述写入的数据所在的子文件标识为第一标识;
[0035]第三发送单元,用于在需要上传时,将每个所述增加的子文件对应的对象和具有所述第一标识的子文件所对应的对象上传到所述对象存储服务器中。
[0036]结合本发明实施例的第二方面,或第二方面的第一种实施方式,或第二方面的第二种实施方式,在本发明实施例的第二方面的第三种实施方式中,包括:计算单元,用于在所述用户在所述文件中读取数据时,根据读偏移、读长度及所述最大容量值算出所述用户读取的数据所在的子文件,所述用户读取的数据所在的子文件属于所述文件的子文件;
[0037]第三标识单元,用于将所述用户读取的数据所在的子文件标识为第二标识。
[0038]结合本发明实施例的第二方面的第三种实施方式,在本发明实施例的第二方面的第四种实施方式中,包括:接收单元,用于在需要下载时,根据所述读偏移、所述读长度和所述第二标识在所述对象存储服务器中读取具有所述第二标识的子文件所对应的对象。
[0039]从以上技术方案可以看出,本发明实施例具有以下优点:
[0040]本发明提供一种分片存储方法及用户终端,用户终端根据文件的容量值以及最大容量值将该文件分成至少一个子文件,该至少一个子文件中每个子文件具有相同的最大容量值,每个子文件的容量值之和等于文件的容量值,将该至少一个子文件按照该文件中存储的数据的顺序进行排列,为该至少一个子文件中每个子文件分别对应创建一个对象,将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,这样只上传或者下载文件中的部分数据,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性倉泛。
【专利附图】

【附图说明】
[0041]图1为本发明实施例中分片存储方法一个实施例示意图;
[0042]图2为本发明实施例中文件I分片的示意图;
[0043]图3为本发明实施例中文件2分片的示意图;
[0044]图4为本发明实施例中分片存储方法另一实施例示意图;
[0045]图5为本发明实施例中用户终端一个实施例示意图;
[0046]图6为本发明实施例中用户终端另一实施例示意图;
[0047]图7为本发明实施例中用户终端另一实施例示意图。
【具体实施方式】
[0048]本发明实施例提供了一种分片存储方法及用户终端,能够节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0049]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0050]请参照图1,本发明实施例中分片存储方法一个实施例包括:
[0051]101、用户终端根据文件的容量值以及最大容量值将文件分成至少一个子文件;
[0052]102、将至少一个子文件按照文件中存储的数据的顺序进行排列;
[0053]本实施例中,用户终端可以根据文件的容量值以及最大容量值将该文件分成至少一个子文件,其中该至少一个子文件中每个子文件具有相同的该最大容量值,且该最大容量值为固定值,该最大容量值用于表示该文件所分成的每个子文件最大的存储量,每个子文件的容量值之和等于该文件的容量值,文件的容量值的单位可以为KB、也可以为M,还可以为MB或者GB,本发明实施例以文件的容量值单位为M为例进行说明,在实际应用中,这里的用户终端可以为计算机、手机或者平板电脑等,参见图2所示,文件I的容量值为12M,并设置最大容量值为4M,用户终端可以根据文件I的容量值为12M以及最大容量值为4M将文件I分成3个子文件,按照文件I中存储的数据的顺序该3个子文件依次为子文件1、子文件2和子文件3,且子文件1、子文件2和子文件3的最大容量值均为4M,图2的示例是刚好分成3个子文件,且每个子文件的容量值均为最大容量值4M,此时子文件1、子文件2和子文件3容量值相加等于12M,由于最大容量值为4M,所以子文件1、子文件2和子文件3分别最多能够存储4M的数据。
[0054]进一步地,参见图3,文件2的容量值为11M,设置最大容量值为4M,用户终端可以根据文件2的容量值为IlM以及最大容量值为4M将文件2分成3个子文件,按照文件2中存储的数据的顺序,该3个子文件为子文件A、子文件B和子文件C,其中子文件A和子文件B的容量值均为最大容量值4M,子文件C的容量值为3M,此时子文件A、子文件B和子文件C的容量值相加等于11M。
[0055]在实际应用中,用户终端可以根据文件的容量值设定最大容量值,当文件的容量值过小时,如文件的容量值为IM或者不到1M,可以不对该容量值过小的文件进行划分子文件,等到该文件的容量值变大时再划分,也可以为该容量值过小的文件设定一个最大容量值,然后仅将该容量值过小的文件分成一个子文件,例如,该文件的容量值为1M,设置最大容量值为2M,此时可以将该文件的容量值为IM分成一个容量值为IM的子文件。
[0056]需要说明的是,文件的容量值是可以增加的,由于用户可以在文件中进行写入数据,文件的容量值随着用户写入的数据逐渐增加。
[0057]103、为至少一个子文件中每个子文件分别对应创建一个对象,并将每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载文件中部分数据时,仅上传或者下载该部分数据所在子文件对应的对象。
[0058]本实施例中,用户终端可以为该至少一个子文件中每个子文件分别对应创建一个对象,一个子文件对应一个对象,例如,参见图2所示,上述步骤101已经将文件I分成了子文件1、子文件2和子文件3,用户终端为子文件I对应创建对象1,为子文件2对应创建对象2,为子文件3对应创建对象3,具体地,子文件I对应对象1,子文件2对应对象2,子文件3对应对象3,用户终端可以将每个子文件对应的对象上传至对象存储服务器中存储,如图2所示,将对象1、对象2和对象3发送至对象存储服务器中。
[0059]本实施例中,用户终端根据文件的容量值以及最大容量值将文件分成至少一个子文件,至少一个子文件中每个子文件具有相同的最大容量值,将至少一个子文件按照该文件中存储的数据的顺序进行排列,为该至少一个子文件中每个子文件分别对应创建一个对象,将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载该文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,该每个子文件的容量值之和等于该文件的容量值,这样只上传或者下载文件中的部分数据,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0060]为了便于理解,下面以一具体实例对本发明实施例中的分片存储方法进行描述,请参阅图4,本发明实施例中分片存储方法另一实施例包括:
[0061]401、用户终端根据文件的容量值以及最大容量值将文件分成至少一个子文件;
[0062]402、将至少一个子文件按照文件中存储的数据的顺序进行排列;
[0063]403、为至少一个子文件中每个子文件分别对应创建一个对象,并将该每个子文件对应的对象上传至对象存储服务器中存储;
[0064]本实施例中,该至少一个子文件中每个子文件具有相同的该最大容量值,且该最大容量值为固定值,具体地的说明参照上述实施例中步骤101-103,此处不做赘述。
[0065]404、当该用户在该文件中写入数据时,根据写偏移、写长度以及该最大容量值判断该用户写入的数据是否超出已分成的该至少一个子文件,若判断结果为没有超出已分成的该至少一个子文件,则执行步骤405,若判断结果为超出已分成的该至少一个子文件,则执行步骤408 ;
[0066]405、根据写偏移、写长度以及该最大容量值确定该用户写入的数据所在的子文件;
[0067]本实施例中,该写入的数据所在的子文件属于该至少一子文件,在实际应用中,用户可以在文件中写入数据,写入数据的方式有追加和覆盖两种方式,用户终端可以根据写偏移、写长度以及该最大容量值判断该用户写入的数据是否超出已分成的该至少一个子文件。
[0068]在实际应用中,写偏移用于表示写入数据的位置,写长度用于表示写入数据所占文件的容量值,写偏移和写长度的单位可以KB、M、MB或者GB,例如,参照图2所示,文件I(12M)分成子文件I (4M)、子文件2 (4M)和子文件3 (4M),最大容量值为4M,设置写偏移为4M,写长度为4M,用户终端根据写偏移(4M)、写长度(4M)以及该最大容量值(4M)确定该用户写入的数据所在的子文件为子文件2,并可以确定用户写入数据刚好覆盖了原有子文件2中的数据,没有超出已分成的子文件I (4M)、子文件2 (4M)和子文件3 (4M);例如,写偏移不变,写长度为5M,此时用户终端可以确定写入数据刚好覆盖了原有子文件2,并且覆盖了子文件3中IM的数据;例如,写偏移不变,写长度为9M,此时用户终端可以确定超出了已分成的文件I (4M)、子文件2 (4M)和子文件3 (4M)。
[0069]406、将该写入的数据所在的子文件标识为第一标识;
[0070]407、当需要上传时,将具有该第一标识的子文件所对应的对象上传至该对象存储服务器中;
[0071]本实施例中,用户终端可以将该写入的数据所在的子文件标识为第一标识,第一标识可以数字,也可以为字符,还可以为字母,此处不做限定,被标识为第一标识的子文件为待上传的子文件,并将具有该第一标识的子文件所对应的对象上传至该对象存储服务器中,在实际应用中,当用户终端接收到清空缓存(flush)或关闭(close)的指令,均需要执行上传操作。
[0072]例如,在步骤405中的示例,文件I (12M)分成子文件I (4M)、子文件2 (4M)和子文件3 (4M),最大容量值为4M,设置写偏移为4M,写长度为4M,用户终端可以确定该用户写入的数据没有超出子文件2,将子文件2标识为第一标识,若用户终端接收到flush或close,用户终端将子文件2转换为对象2,并将对象2上传至对象存储服务器中。
[0073]需要说明的是,用户终端执行上传操作之前,均需要将待上传的子文件转化成该待上传的子文件对应的对象。
[0074]408、根据该写偏移、该写长度及该最大容量值确定该用户写入的数据所在的子文件以及该用户写入数据的超出值;
[0075]409、根据该超出值及该最大容量值确定增加子文件的个数,并为每个该增加的子文件对应创建一个对象;
[0076]410、将该写入的数据所在的子文件标识为第一标识;
[0077]411、当需要上传时,将每个该增加的子文件对应的对象和具有该第一标识的子文件所对应的对象上传到该对象存储服务器中;
[0078]本实施例中,其中每个该增加的子文件最多可存储量的值为该最大容量值,根据该写偏移、该写长度及该最大容量值确定该用户写入的数据所在的子文件以及该用户写入数据的超出值,例如,参照步骤405中图2的示例,文件I (12M)分成子文件I (4M)、子文件2 (4M)和子文件3 (4M),最大容量值为4M,设置写偏移为4M,写长度为9M,用户终端先确定写入的数据覆盖了子文件2和子文件3中原有的数据,并确定还剩余IM没有写入的子文件,用户终端根据超出值IM及最大容量值4M确定增加一个子文件4,该子文件4的最大容量值为4M,该子文件4的容量值为1M,然后为该子文件4创建一个对象为对象4,用户终端先将子文件2和子文件3标识为第一标识,然后将对象4、具有第一标识的子文件2对应的对象2和具有第一标识的子文件3对应的对象3上传至对象存储服务器中。
[0079]412、当该用户在该文件中读取数据时,根据读偏移、读长度及该最大容量值算出该用户读取的数据所在的子文件;
[0080]413、将该用户读取的数据所在的子文件标识为第二标识;
[0081]414、当需要下载时,根据该读偏移、该读长度和该第二标识在该对象存储服务器中读取具有该第二标识的子文件所对应的对象。
[0082]本实施例中,用户终端可以根据读偏移、读长度及该最大容量值算出该用户读取的数据所在的子文件,在实际应用中,被标识为第二标识的子文件为待下载的子文件,该第二标识可以为数字,也可以为字母,还可以为字符,此处不做限定。
[0083]例如,如图2所示,在对象存储服务器中存储了文件I生成的子文件I (4M)、子文件2 (4M)和子文件3 (4M),设置读偏移为4M,读长度为4M,用户终端可以确定读取的数据所在的子文件为子文件2,将子文件2标识为第二标识,然后根据该读偏移、该读长度和该第二标识在该对象存储服务器中读取子文件2所对应的对象2。
[0084]需要说明的是,读取对象存储服务器中的对象之后,将读取到的对象转换成该读取到的对象所对应的子文件。
[0085]需要进一步说明的是,本发明实施例中的第一标识和第二标识为两个不相同的标识。
[0086]本实施例中,用户终端根据文件的容量值以及最大容量值将该文件分成至少一个子文件,将该至少一个子文件按照该文件中存储的数据的顺序进行排列,为该至少一个子文件中每个子文件分别对应创建一个对象,并将该每个子文件对应的对象上传至对象存储服务器中存储,而且当在文件中写入数据或者读取文件中部分数据时,可以根据偏移量和长度来确定待上传或者待下载的子文件,这样仅上传待上传的子文件对应的对象或者下载待下载的子文件对应的对象,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0087]下面对用于执行上述分片存储的本发明实施例的用户终端进行说明,其基本逻辑结构参考图5,本发明实施例中用户终端一个实施例包括:
[0088]划分单元501、排序单元502、第一创建单元503和第一发送单元504 ;
[0089]划分单元501,用于用户终端根据文件的容量值以及最大容量值将该文件分成至少一个子文件,其中该至少一个子文件中每个子文件具有相同的该最大容量值,且该最大容量值为固定值;
[0090]排序单元502,用于将该至少一个子文件按照该文件中存储的数据的顺序进行排列;
[0091]第一创建单元503,用于为该至少一个子文件中每个子文件分别对应创建一个对象;
[0092]第一发送单元504,用于将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载该文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,该每个子文件的容量值之和等于该文件的容量值。
[0093]本实施例中,用户终端通过划分单元501根据文件的容量值以及最大容量值将该文件分成至少一个子文件,至少一个子文件中每个子文件具有相同的最大容量值,该每个子文件的容量值之和等于该文件的容量值,排序单元502将该至少一个子文件按照该文件中存储的数据的顺序进行排列,第一创建单元503为该至少一个子文件中每个子文件分别对应创建一个对象,第一发送单元504将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载该文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,这样只上传或者下载文件中的部分数据,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0094]为了更好的理解上述的实施例,下面以一具体实施例对用户终端中包括的各个单元及元件的交互对用户终端中的数据交互方式进行说明,请参阅图6,本发明实施例中用户终端另一实施例包括:
[0095]划分单元601、排序单元602、第一创建单元603、第一发送单元604、判断单元605、第一确定单元606、第一标识单元607、第二发送单元608、第二确定单元609、第三确定单元610、第二创建单元611、第二标识单元612、第三发送单元613、计算单元614、第三标识单元615和接收单元616。
[0096]划分单元601根据文件的容量值以及最大容量值将该文件分成至少一个子文件,其中该至少一个子文件中每个子文件具有相同的该最大容量值,且该最大容量值为固定值,每个子文件的容量值之和等于该文件的容量值,在实际应用中,一个文件所分成的子文件的最大容量值是固定值,且同一个文件分成的子文件的最大容量值都是相同的,然后划分单元601将分成的至少一个子文件告知排序单元602。
[0097]排序单元602将该至少一个子文件按照该文件中存储的数据的顺序进行排列,然后将排序后的至少一个子文件告知第一创建单元603,在实际应用中,由于文件中数据的存储是有先后顺序的,所以在分成至少一个子文件后,通过排序单元602对至少一个子文件进行排序,以确保把排序后的该至少一子文件中所有数据整合后,与该文件存储的数据完全相同,数据完全相同不仅仅指数据本身相同,同时数据的先后顺序也要相同,具体例子请参照上述方法项,此处不再赘述。
[0098]第一创建单元603为该至少一个子文件中每个子文件分别对应创建一个对象,然后将创建的对象发送至第一发送单元604,在实际应用中,一个子文件对应一个对象。
[0099]第一发送单元604将该每个子文件对应的对象上传至对象存储服务器中存储。
[0100]当该用户在该文件中写入数据时,判断单元605根据写偏移、写长度以及该最大容量值判断该用户写入的数据是否超出已分成的该至少一个子文件,若判断结果为没有超出,则告知第一确定单元606,若判断结果为超出,则第二确定单元609,在实际应用中,该写入的数据所在的子文件属于该至少一子文件,在实际应用中,用户可以在文件中写入数据,写入数据的方式有追加和覆盖两种方式,用户终端可以根据写偏移、写长度以及该最大容量值判断该用户写入的数据是否超出已分成的该至少一个子文件。
[0101]当判断单元605的判断结果为没有超出时,第一确定单元606根据写偏移、写长度以及该最大容量值确定该用户写入的数据所在的子文件,然后将该用户写入的数据所在的子文件告知第一标识单元607,在实际应用中,写偏移用于表示写入数据的位置,写长度用于表示写入数据所占文件的容量值,写偏移和写长度的单位可以KB、M、MB或者GB,具体示例请对应参见上述方法实施例,此处不做赘述。
[0102]第一标识单元607将该写入的数据所在的子文件标识为第一标识,然后将标识有第一标识的子文件告知第二发送单元608,在实际应用中,第一标识可以数字,也可以为字符,还可以为字母,此处不做限定,被标识为第一标识的子文件为待上传的子文件。
[0103]当需要上传时,第二发送单元608将具有该第一标识的子文件所对应的对象上传至该对象存储服务器中,在实际应用中,当用户终端接收到清空缓存(flush)或关闭(close)的指令,均需要执行上传操作。
[0104]需要说明的是,用户终端执行上传操作之前,均需要将待上传的子文件转化成该待上传的子文件对应的对象。
[0105]第二确定单元609根据该写偏移、该写长度及该最大容量值确定该用户写入的数据所在的子文件以及该用户写入数据的超出值,其中每个该增加的子文件最多可存储量的值为该最大容量值,然后将超出值发送至第三确定单元610,以及将该用户写入的数据所在的子文件告知第二标识单元612。
[0106]第三确定单元610根据该超出值及该最大容量值确定增加子文件的个数,并将增加的子文件告知第二创建单元611。
[0107]第二创建单元611为每个该增加的子文件对应创建一个对象,然后将增加的子文件告知第三发送单元613,在实际应用中,一个增加的子文件对应一个对象。
[0108]第二标识单元612将该写入的数据所在的子文件标识为第一标识,并将具有第一标识的子文件发送至第三发送单元613。
[0109]当需要上传时,第三发送单元613将每个该增加的子文件对应的对象和具有该第一标识的子文件所对应的对象上传到该对象存储服务器中。
[0110]当该用户在该文件中读取数据时,计算单元614根据读偏移、读长度及该最大容量值算出该用户读取的数据所在的子文件,并将该用户读取的数据所在的子文件告知第三标识单元615,在实际应用中,被标识为第二标识的子文件为待下载的子文件,该第二标识可以为数字,也可以为字母,还可以为字符,此处不做限定。
[0111]第三标识单元615将该用户读取的数据所在的子文件标识为第二标识,然后将具有第二标识的子文件告知接收单元616。
[0112]当需要下载时,接收单元616根据该读偏移、该读长度和该第二标识在该对象存储服务器中读取具有该第二标识的子文件所对应的对象,具体示例请参见对应的方法实施例,此处不做赘述。
[0113]需要说明的是,读取对象存储服务器中的对象之后,将读取到的对象转换成该读取到的对象所对应的子文件。
[0114]需要进一步说明的是,本发明实施例中的第一标识和第二标识为两个不相同的标识。
[0115]本实施例中,划分单元601根据文件的容量值以及最大容量值将该文件分成至少一个子文件,排序单元602将该至少一个子文件按照该文件中存储的数据的顺序进行排列,第一创建单元603为该至少一个子文件中每个子文件分别对应创建一个对象,第一发送单元604将该每个子文件对应的对象上传至对象存储服务器中存储,而且当在文件中写入数据或者读取文件中部分数据时,通过判断单元605、第一确定单元606和第一标识单元607或者第二确定单元609、第三确定单元610和第二标识单元612,以及计算单元614和第三标识单元615根据偏移量和长度来确定待上传或者待下载的子文件,这样仅上传待上传的子文件对应的对象或者下载待下载的子文件对应的对象,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0116]请参见图7,本发明实施例中用户终端另一实施例包括:
[0117]处理器701、用于存储文件的存储器702和发送器703 ;
[0118]处理器701,用于根据文件的容量值以及最大容量值将该文件分成至少一个子文件,其中该至少一个子文件中每个子文件具有相同的该最大容量值,且该最大容量值为固定值,并将该至少一个子文件按照该文件中存储的数据的顺序进行排列,再为该至少一个子文件中每个子文件分别对应创建一个对象;
[0119]发送器703,用于将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载该文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,该每个子文件的容量值之和等于该文件的容量值。
[0120]可选地,用户终端还可以包括:接收器704。
[0121]可选地,处理器701,还用于在该用户在该文件中写入数据时,根据写偏移、写长度以及该最大容量值判断该用户写入的数据是否超出已分成的该至少一个子文件,并在判断结果为没有超出时,根据写偏移、写长度以及该最大容量值确定该用户写入的数据所在的子文件,其中,该写入的数据所在的子文件属于该至少一子文件,然后,将该写入的数据所在的子文件标识为第一标识。
[0122]可选地,发送器703,还用于在需要上传时,将具有该第一标识的子文件所对应的对象上传至该对象存储服务器中。
[0123]可选地,处理器701,还用于在判断结果为超出时,根据该写偏移、该写长度及该最大容量值确定该用户写入的数据所在的子文件以及该用户写入数据的超出值,并根据该超出值及该最大容量值确定增加子文件的个数,其中每个该增加的子文件最多可存储量的值为该最大容量值。
[0124]可选地,处理器701,还用于为每个该增加的子文件对应创建一个对象,将该写入的数据所在的子文件标识为第一标识。
[0125]可选地,发送器703,还用于在需要上传时,将每个该增加的子文件对应的对象和具有该第一标识的子文件所对应的对象上传到该对象存储服务器中。
[0126]可选地,处理器701,还用于在该用户在该文件中读取数据时,根据读偏移、读长度及该最大容量值算出该用户读取的数据所在的子文件,该用户读取的数据所在的子文件属于该文件的子文件,并将该用户读取的数据所在的子文件标识为第二标识。
[0127]可选地,接收器704,还用于在需要下载时,根据该读偏移、该读长度和该第二标识在该对象存储服务器中读取具有所述第二标识的子文件所对应的对象。
[0128]本实施例中,处理器701根据文件的容量值以及最大容量值将该文件分成至少一个子文件,至少一个子文件中每个子文件具有相同的最大容量值,该每个子文件的容量值之和等于该文件的容量值,将该至少一个子文件按照该文件中存储的数据的顺序进行排列,为该至少一个子文件中每个子文件分别对应创建一个对象,发送器703将该每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载该文件中的部分数据时,仅上传或者下载该部分数据所在子文件对应的对象,这样只上传或者下载文件中的部分数据,进而节省网络带宽的使用,提高网络带宽的利用率,并提升用户终端的性能。
[0129]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0130]以上对本发明所提供的一种分片存储方法和用户终端进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种分片存储方法,其特征在于,所述方法包括: 用户终端根据文件的容量值以及最大容量值将所述文件分成至少一个子文件,其中所述至少一个子文件中每个子文件具有相同的所述最大容量值,且所述最大容量值为固定值; 将所述至少一个子文件按照所述文件中存储的数据的顺序进行排列; 为所述至少一个子文件中每个子文件分别对应创建一个对象,并将所述每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载所述文件中的部分数据时,仅上传或者下载所述部分数据所在子文件对应的对象; 所述每个子文件的容量值之和等于所述文件的容量值。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当所述用户在所述文件中写入数据时,根据写偏移、写长度以及所述最大容量值判断所述用户写入的数据是否超出已分成的所述至少一个子文件; 若没有超出,则根据写偏移、写长度以及所述最大容量值确定所述用户写入的数据所在的子文件,其中,所述写入的数据所在的子文件属于所述至少一子文件; 将所述写入的数据所在的子文件标识为第一标识; 当需要上传时,将具有所述第一标识的子文件所对应的对象上传至所述对象存储服务器中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 若超出,则根据所述写偏移、所述写长度及所述最大容量值确定所述用户写入的数据所在的子文件以及所述用户写入数据的超出值; 根据所述超出值及所述最大容量值确定增加子文件的个数,并为每个所述增加的子文件对应创建一个对象,其中每个所述增加的子文件最多可存储量的值为所述最大容量值;将所述写入的数据所在的子文件标识为第一标识; 当需要上传时,将每个所述增加的子文件对应的对象和具有所述第一标识的子文件所对应的对象上传到所述对象存储服务器中。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括: 当所述用户在所述文件中读取数据时,根据读偏移、读长度及所述最大容量值算出所述用户读取的数据所在的子文件,所述用户读取的数据所在的子文件属于所述文件的子文件; 将所述用户读取的数据所在的子文件标识为第二标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 当需要下载时,根据所述读偏移、所述读长度和所述第二标识在所述对象存储服务器中读取具有所述第二标识的子文件所对应的对象。
6.一种用户终端,其特征在于,所述用户终端包括: 划分单元,用于根据文件的容量值以及最大容量值将所述文件分成至少一个子文件,其中所述至少一个子文件中每个子文件具有相同的所述最大容量值,且所述最大容量值为固定值; 排序单元 ,用于将所述至少一个子文件按照所述文件中存储的数据的顺序进行排列; 第一创建单元,用于为所述至少一个子文件中每个子文件分别对应创建一个对象;第一发送单元,用于将所述每个子文件对应的对象上传至对象存储服务器中存储,使得用户在上传或下载所述文件中的部分数据时,仅上传或者下载所述部分数据所在子文件对应的对象,所述每个子文件的容量值之和等于所述文件的容量值。
7.根据权利要求6所述的用户终端,其特征在于,所述用户终端还包括: 判断单元,用于在所述用户在所述文件中写入数据时,根据写偏移、写长度以及所述最大容量值判断所述用户写入的数据是否超出已分成的所述至少一个子文件; 第一确定单元,用于在所述判断单元的判断结果为没有超出时,根据写偏移、写长度以及所述最大容量值确定所述用户写入的数据所在的子文件,其中,所述写入的数据所在的子文件属于所述至少一子文件; 第一标识单元,用于将所述写入的数据所在的子文件标识为第一标识; 第二发送单元,用于在需要上传时,将具有所述第一标识的子文件所对应的对象上传至所述对象存储服务器中。
8.根据权利要求7所述的用户终端,其特征在于,所述用户终端还包括: 第二确定单元,用于在所述判断单元的判断结果为超出时,根据所述写偏移、所述写长度及所述最大容量值确定所述用户写入的数据所在的子文件以及所述用户写入数据的超出值; 第三确定单元,用于根据所述超出值及所述最大容量值确定增加子文件的个数,其中每个所述增加的子文件最多可存储量的值为所述最大容量值; 第二创建单元,用于为每个所述增加的子文件对应创建一个对象; 第二标识单元,用于将所述写入的数据所在的子文件标识为第一标识; 第三发送单元,用于在需要上传时,将每个所述增加的子文件对应的对象和具有所述第一标识的子文件所对应的对象上传到所述对象存储服务器中。
9.根据权利要求6至8中任一项所述的用户终端,其特征在于,所述用户终端还包括: 计算单元,用于在所述用户在所述文件中读取数据时,根据读偏移、读长度及所述最大容量值算出所述用户读取的数据所在的子文件,所述用户读取的数据所在的子文件属于所述文件的子文件; 第三标识单元,用于将 所述用户读取的数据所在的子文件标识为第二标识。
10.根据权利要求9所述的用户终端,其特征在于,所述用户终端还包括: 接收单元,用于在需要下载时,根据所述读偏移、所述读长度和所述第二标识在所述对象存储服务器中读取具有所述第二标识的子文件所对应的对象。
【文档编号】H04L29/08GK103825945SQ201410064385
【公开日】2014年5月28日 申请日期:2014年2月25日 优先权日:2014年2月25日
【发明者】胡遥 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1