一种分段存储文件的方法及装置制造方法及图纸

技术编号:2829639 阅读:227 留言:0更新日期:2012-04-11 18:40
本发明专利技术的实施例中公开了一种分段存储文件的方法,该方法包括:将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。本发明专利技术的实施例中公开了一种客户端和一种服务器。通过使用上述的方法和装置,可大大节省服务器中的存储空间,显著地降低了系统成本;同时,还可大大提高检索或查询的精度,实现更精准的定位。

【技术实现步骤摘要】

本专利技术涉及文件存储技术,尤其是指 一种分段存储文件的方法及装置
技术介绍
在现有技术中,对于流媒体等大数据文件的下载,通常采用的方法为先 使用简单的分块方式将提供下载的文件分成多个数据块,并将这些数据块分别 存储在一个或多个客户端上(也可以直接存储在服务器上),同时,各个存储数 据块的客户端将自身所存储的资源上报给服务器;当某个用户需下载上述文件 时,该用户可通过其所在的客户端向服务器发送下载请求,指定需要下载的数 据块(或称之为区间段)或整个数据文件;服务器根据所接收到的下载请求, 查询所需下载的数据块所在的客户端,并将查询结果,即通过查询所得到的所需下载的数据块所在的客户端的信息返回给上述发送下载请求的客户端;该发 送下载请求的客户端根据接收到的客户端信息,可通过使用各种支持分块下载 的软件到相应的客户端下载所需的数据块或整个数据文件。在现有技术中,由于对文件进行分块后,需要在服务器上分别记录每一个 数据块的相关信息,因此将占用服务器中大量的存储空间。
技术实现思路
有鉴于此,本专利技术实施例的主要目的在于提供一种分段存储文件的方法及 装置,从而节省了服务器中的存储空间。为达到上述目的,本专利技术实施例中的技术方案是这样实现的本专利技术实施例中提供了一种分段存储文件的方法,该方法包括将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将 所述记录文件发送给服务器;服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间 的关系。本专利技术实施例中还提供了一种客户端,该客户端包括采集模块和上报模块;所述采集模块,用于接收并存储从文件中分割出的数据段;所述上报模块,用于将同一个文件的数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器。本专利技术实施例中还提供了一种服务器,其特征在于,该服务器包括资源 存储模块和资源管理模块;所述资源存储^t块,用于存储由各客户端发送的记录文件; 所述资源管理模块,用于根据所述资源存储模块中存储的记录文件,记录 每个客户端与其所存储的数据段之间的关系。综上可知,本专利技术的实施例中提供了一种分段存储文件的方法及装置。在 上述的方法和装置中,由于每个客户端将同一个文件的数据段的信息记录在同 一个记录文件中,并将所述记录文件发送给服务器,因此在服务器中只需少量 的存储空间即可存储所有数据段的信息,从而大大节省了服务器中的存储空间, 显著地降低了系统成本。附图说明图1为本专利技术实施例中分段存储文件的方法的流程图。图3所示为本专利技术实施例中资源查询方法的流程图。图4为本专利技术实施例中客户端和服务器的结构图。具体实施例方式为使本专利技术的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本专利技术再作进一步详细的说明。图1为本专利技术实施例中分段存储文件的方法的流程图。如图l所示,本专利技术实施例中分段存储文件的方法包括如下所述的步骤步骤IOI,以指定的分割单位将大文件分割成多个数据段,并分别存储 于一个或多个客户端。在本步骤中,所述指定的分割单位可以是预先设定的时间间隔或文件长度。例如,对于流媒体文件,可采用秒或秒的倍数为分割单位;对于非流媒 体文件,可采用KB (例如,32KB或32KB的倍数)为分割单位。为了叙述 的简便,在以下的描述中,将以以秒为分割单位进行分割为例进行说明。图2所示为本专利技术实施例中在客户端分段存储文件的示意图。如图2所 示,假设所需存储的文件为一种视频格式的文件,该视频文件的播放时间为 500秒(即长度为600秒)。因此,可将上述视频文件以秒为单位平均分成 500个数据段,并将第0-100秒和第200 ~ 300秒的数据段存储在客户端A 上;将第101 ~ 199秒的数据段存储在客户端B上;将第301 ~ 500秒的数据 段存储在客户端C上。另外,在本步骤中,如果实际情况需要,也可将一个大文件的所有数据 段均存储在一个客户端上,所用的分段存储方法与上述方法相同。此外,在本步骤中,也可根据实际情况的需要,将同一个数据段存储在 不同的客户端上,以保证一定的数据冗余度。步骤102,各客户端将所存储的资源进行索引。在本步骤中,各客户端将各自存储的数据段的信息进行索引,即将同一 个文件的数据段的信息记录在同一个记录文件中。在本专利技术的实施例中,所 述的记录文件可以是一个资源描述表,所述资源描述表的格式如表1所示表1<table> complex table see original document page 6 </column></row><table>在上述的表l中,资源ID表示该数据段所属的大文件的编号,由于在 本专利技术的实施例中,每一个大文件都具有一个唯一的编号,因此可通过资源 ID来区分不同的大文件;上述表1中的开始段表示客户端中所存储的数据 段的起始位置;结束段表示客户端中所存储的数据段的结束位置,而当结束 段的数值为0时,表示该数据段一直延续到该数据段所属大文件的末尾。以 图2所示的分段存储方式为例,当将如图2所示的大文件分段存储于客户端 A、 B和C时,客户端A、 B和C中的资源描述表将分别如表2、 3、 4所示表2 客户端A的资源描述表<table>complex table see original document page 7</column></row><table>表3 客户端B的资源描述表<table>complex table see original document page 7</column></row><table>表4 客户端A的资源描述表<table>complex table see original document page 7</column></row><table>步骤103,各客户端上报资源情况到服务器。在本步骤中,各客户端可将各自所存储的数据段的资源描述表发送给服 务器,使得服务器可得知资源的存储情况。由步骤102可知,由于同一个客户端中可能存储多个数据段,因此可将 所有属于同一个大文件(即资源ID相同)的数据段的信息记录在同一个资 源描述表中并发送给服务器,从而大大减少资源描述表在服务器中所占用的 存储空间。例如,在现有技术中,如果将一个大文件分割成n个数据段,则 需要分别记录n个数据段的信息,每个数据段的信息中都至少包括该数据段 所属的大文件的资源ID ( 16字节),因此服务器中至少需要16n个字节来 存储n个数据段的信息。而如果使用如表1所示的资浑描述表,则服务器只需(4n+16)个字节即可记录n个数据段的信息。因此,使用本步骤中的资 源描述表来记录各数据段的信息,将大大节省服务器中的存储空间。步骤104,服务器记录各客户端与各数据段之间的关系。在本步骤中,服务器可分别记录各个客户端与其所存储的数据段之间的关系,并可根据上述的关系形成一个关系列表,以供查询。通过上述的步骤101 ~ 104,可将一个大文件以秒或Kb为分割单位分割成多本文档来自技高网...

【技术保护点】
一种分段存储文件的方法,其特征在于,该方法包括:    将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;    每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;    服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。

【技术特征摘要】
1、一种分段存储文件的方法,其特征在于,该方法包括将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。2、 根据权利要求1所述的方法,其特征在于,所述将文件分割成至少两个 数据段具体包括以指定的分割单位将文件分割成至少两个数据段。3、 根据权利要求1所述的方法,其特征在于所述指定的分割单位为时间 间隔或文件长度。4、 根据权利要求3所述的方法,其特征在于所述的时间间隔为秒;所述 的文件长度为千字节。5、 根据权利要求1所述的方法,其特征在于,所述记录文件中包括 所述被分割的文件的标识、所述数据段的起始位置和所述数据段的结束位置。6、 根据权利要求1所述的方法,其特征在于,所述记录每个客户端与其所 存储的数据段之间的关系之后还包括当查询客户端向服务器发送查询请求,要求查询指定数据段的信息时,所 述服务器根据所述查询请求,查询所述记录的每个客户端与其所存储的数据段 之间的关系,将所述指定数据段所在的客户端的信息返回给查询客户端。7、 根据权利要求6所述的方法,其特征在于所述查询请求携带一个参数, 该参数用于指示需要...

【专利技术属性】
技术研发人员:华有为
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

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

1