基于哈希值比较的文件上传的制作方法

文档序号:6498103阅读:166来源:国知局
基于哈希值比较的文件上传的制作方法
【专利摘要】服务器通过比较用于文件的第一部分的哈希值而确定存储在计算设备上的文件是否与存储在服务器上的文件匹配。基于该比较,服务器确定是否上传文件的第一部分。服务器上传文件的第二部分。服务器通过将存储在服务器上的文件的第一部分附加于从计算设备上传的文件的第二部分而生成用于下载的文件。
【专利说明】基于哈希值比较的文件上传

【背景技术】
[0001] 随着用户已经适应经由多种计算设备来访问其数据,可能期望将用户的数据文件 存储在存储系统中,该存储系统允许从任何用户设备且经由网络连接从任何位置访问文 件。此类分布式存储可用来存储用户对从多个设备和/或位置访问感兴趣或对降低由于对 本地化存储的损害而引起的文件丢失风险感兴趣的相对大的媒体文件,诸如音乐文件或视 频文件。因此,需要存储资源来存储用于大量用户的媒体及其他文件,并且用来将文件上传 到分布式储存器的网络资源可以是广泛的。

【专利附图】

【附图说明】
[0002] 针对本发明的各种示例的详细描述,现在将对附图进行参考,在所述附图中: 图1A示出了根据本文公开的原理的针对用于存储并向远程计算设备传送文件的系统 的框图; 图1B示出了根据本文公开的原理的针对可用于存储并传送文件的计算设备的框图; 图2示出了根据本文公开的原理的针对用于存储并向远程计算设备传送文件的方法 的流程图; 图3示出了根据本文公开的原理的针对用于上传文件到服务器系统的方法的流程图; 以及 图4示出了根据本文公开的原理的针对用于传送文件到远程计算设备的方法的流程 图。
[0003] 注释和命名法 特定术语遍及以下描述和权利要求被用来指代特定系统部件。如本领域的技术人员将 认识到的,计算机公司可以用不同的名称来指代部件。本文档并不意图对在名称而不是功 能方面不同的部件进行区别。在以下讨论中和权利要求中,以开放方式来使用术语"包括" 和"包含",并且因此应将其解释为意指"包括但不限于"。并且,术语"耦合"意图意指间接、 直接、光学或无线电气连接。因此,如果第一设备耦合到第二设备,则该连接可以是通过直 接电气连接、通过经由其他设备和连接的间接电气连接、通过光学连接或通过无线电气连 接。此外,术语"软件"包括无论用来存储软件的介质如何、都能够在处理器上运行的任何 可执行指令。因此,存储在存储器(例如,非易失性存储器)中且有时称为"嵌入式固件"的 代码被包括在软件的定义内。叙述"基于"意图意指"至少部分地基于"。因此,如果X是基 于Y,则X可基于Y和任何数目的附加因素。

【具体实施方式】
[0004] 以下讨论针对使用哈希值比较来减少存储在系统上的文件数目的分布式存储系 统的各种示例。不应将公开的示例解释为或以其他方式用作限制本公开的范围,包括权利 要求。另外,本领域的技术人员将理解的是以下描述具有宽泛的应用,并且任何示例的讨论 并不意图暗示本公开的范围、包括权利要求局限于该示例。
[0005] 由于对于大量(例如数百万)用户而言可使用分布式存储系统来存储大型文件,诸 如媒体文件,所以期望在不减少存储在系统上的内容量的情况下减少由存储系统存储和/ 或传输到存储系统的文件的数目。本文公开的分布式存储系统将针对用户所拥有的文件的 内容部分计算的哈希值与针对存储系统存储的文件计算的哈希值相比较以确定与用户所 拥有文件匹配(例如,相同)的文件是否已被存储在存储系统上。如果哈希值比较识别到存 储系统上的匹配文件,则不需要将用户所拥有文件上传到存储系统,减少系统所消耗的储 存器和带宽。
[0006] 该哈希值可基于文件的已编码符号的哈希(hash)(例如,MP3编码、MPEG-4编码 等)。如果哈希值比较未能识别到存储系统上的匹配文件,则可将用户所拥有文件的内容部 分(例如,音频或视频部分)的指纹(fingerprint)与存储在分布式存储系统上的主文件许可 的指纹相比较。该指纹是基于已解码文件信号(即,音频信号、视频信号等)的标记。例如, 因为音频信号的不同编码的重放可能会产生等效的音频认知,所以音频指纹可以基于音频 信号是如何被报头而不是信号编码认知的。因此,指纹未受到可引起哈希值错误比较的编 码格式、比特率、编码错误等方面的差异的影响。GRACEN0TE公司的MUSICID是音频指纹系 统的一个示例。然而,对文件采指纹可能需要承担哈希比较避免的不期望的许可费用。如 果指纹比较识别到存储系统上的等效文件,则不需要将用户所拥有文件上传到存储系统, 否则将用户所拥有的文件上传到存储系统。
[0007] 图1A示出了根据本文公开的原理的针对用于存储并向远程计算设备传送文件的 系统100的框图。系统100包括服务器系统102、计算设备120-124以及将服务器系统102 通信耦合到计算设备120-124的网络118。计算设备120-124可以作为服务器系统102 的客户端。网络118是能够将计算设备120-124通信耦合到服务器系统102的任何网络。 例如,网络118可以是局域网、广域网、城域网、因特网或其组合。
[0008] 计算设备120-124可以是能够经由网络118向和/或从服务器系统100传输文 件的任何类型的计算设备。例如,计算设备120-124可以是个人计算机、无线电话、个人音 乐播放器、游戏系统、平板计算机等。计算设备120和122被关联为组A,并且计算设备124 形成组B。可使形成组的每个设备与公共用户(例如,公共拥有的)相关联。因此,可使计算 设备120和122与用户A相关联,同时使计算设备124与用户B相关联。虽然在图1A中出 于说明性目的示出了三个计算设备120-124,但在实践中,系统100可包括任何数目的此 类计算设备。每个计算设备120-124包括文件126和代理128。
[0009] 文件126可以是被向或从服务器系统128传输的媒体或其他文件。文件126中 的文件可包括内容部分和报头部分。内容部分可包含文件的媒体信息(例如,音频和/或 视频)。报头部分可包含描述或提供关于文件的内容部分的信息(例如,相关原图、标题信息 等)的元数据。
[0010] 代理128执行与文件到服务器系统102的传输相关联的功能。例如,代理128可 对文件126中的一个的内容部分或整体应用哈希函数并将哈希值(也称为哈希秘钥)提供给 服务器系统102。哈希函数到文件126的一部分的应用产生表示文件的该部分的固定大小 输出(例如,单个值)。安全哈希算法变型(SHA)和消息摘要算法5 (MD5)作为哈希函数的 示例可以被应用于各种实施方式中对文件126求哈希值。可将代理128实现为执行存储在 计算设备120-124的计算机可读存储介质中的指令的处理器(未示出)。
[0011] 服务器系统102包括一个或多个服务器计算机,其包括一个或多个处理器104和 储存器106。一个或多个处理器104可包括例如一个或多个通用微处理器、数字信号处理 器、微控制器或者能够执行从计算机可读存储介质检索的指令的其他设备。处理器架构一 般地包括执行单元(例如,固定点、浮点、整数等)、储存器(例如,寄存器、存储器等)、指令解 码、外围设备(例如,中断控制器、定时器、直接存储存取控制器等)、输入/输出系统(例如, 串行端口、并行端口等)和各种其他部件和子系统。适用于实现计算设备120-124的代理 128的处理器可以等同于一个或多个处理器104。
[0012] 储存器106是非暂时性计算机可读存储介质,并且可包括易失性储存器,诸如随 机存取存储器、非易失性储存器(例如,硬盘驱动器、光学存储设备(例如,CD或DVD)、闪速 (FLASH)储存器、只读存储器)或其组合。在服务器系统102的一些实施方式中,储存器104 可邻近一个或多个处理器104设置。在其他实施方式中,储存器104可远离一个或多个处 理器104并经由诸如网络118之类的网络来访问。
[0013] 储存器106包含哈希映射表108、文件110以及文件管理系统130。文件110包括 锁定器(locker) 112,其包含从计算设备120-124下载的文件,标识为锁定器A 114和锁 定器B 116。可使锁定器A 114与组A的计算设备120-122相关联,并且可使锁定器B与 组B的计算设备124相关联。文件110还包括从除计算设备120-124之外的源获得的文 件,其可被下载到计算设备120-124。例如,文件110可以包括通过诸如主文件的版权持 有者的控制实体分发的许可的主文件。文件110可包括媒体文件,诸如音乐和/或视频文 件。哈希映射表108包括针对每个文件110计算的哈希值。该哈希值是通过对每个文件 110的至少一部分(例如,内容部分)应用哈希函数而计算的。在一些实施例中,哈希映射表 108包括针对每个文件的内容部分的哈希值和针对每个文件的整体的(例如,每个文件的报 头和内容部分)哈希值。
[0014] 文件管理系统130包括由一个或多个处理器140执行以管理文件110、计算哈希映 射表108的哈希值并向和/或从计算设备120-124传输文件的指令。文件管理系统130 应用哈希映射表108来确定存储在计算设备120-124中的一个上的文件126是否在由服 务器系统102存储的文件110之中。如果被存储在计算设备120-124中的一个上的文件 126在由服务器系统102存储的文件110之中,则不需要将文件126上传到服务器系统102, 从而减少必须上传并存储在服务器系统102上的文件的数目。
[0015] 图1B示出了根据本文公开的原理的针对可用于存储并传送文件的计算设备150 的框图。计算设备150可以是服务器系统102的组件。计算设备150可以是台式计算机、 机架式计算机或能够执行用于执行本文公开的操作的指令的任何其他设备。计算设备150 包括如本文所述的一个或多个处理器104以及如本文所述的储存器106。储存器106包括 处理器可执行指令152,当其被一个或多个处理器104执行时促使一个或多个处理器104来 执行本文所述的各种文件管理操作。
[0016] 图2示出了根据本文公开原理的针对用于存储文件110并传送到远程计算设备 120-124的方法200的流程图。虽然为了方便起见而顺序地描述,但可以按照不同的顺序 执行和/或并行地执行所示动作中的至少一些。另外,一些实施方式可仅执行所示动作中 的一些。可以由执行从计算机可读介质(例如,储存器106)读取的文件管理系统130的指 令的一个或多个处理器104来执行方法200的操作中的至少一些。
[0017] 在方框202中,服务器系统102确定存储在计算设备120上的文件126的内容部 分是否已被存储在服务器系统102上。通过将针对在计算设备120上的文件126的内容部 分计算的哈希值与针对存储在服务器系统102上的文件110的哈希值相比较来进行确定。 可从计算设备124上传存储在服务器系统102上的文件110中的至少一些,或者将其提供 为供文件内容的所有者使用。在一些实施方式中,代理128可计算哈希值并经由网络118 将该哈希值传输到服务器系统102。服务器系统102可通过访问哈希映射表108以确定存 储在服务器系统102上的文件110中的一个的内容部分是否与存储在计算设备120上的文 件126的内容部分匹配(例如,符合精确位播放(bit-to-bit))来实现比较。
[0018] 在方框204中,基于哈希值比较的结果,服务器系统102确定是否从计算设备120 上传文件126的内容部分。如果在服务器系统102上找到针对文件126的内容部分的哈希 值的匹配,则服务器系统102不需要从计算设备120向服务器系统102上传文件126的该内 容部分。替代地,服务器系统102将文件110之中的已存储的文件的内容部分识别为当由 计算设备120或122请求文件126时可下载到计算设备120-122。因此,服务器系统102 节省本应被用来传输和存储文件126的内容部分(如果上传的话)的网络带宽和存储空间。 在一些实施方式中,服务器系统102可以基于哈希匹配的识别上传文件126但不将文件126 存储在文件110之中。例如,服务器系统102可以上传其内容部分的文件126并且计算针 对该内容部分的哈希值,识别到哈希匹配,并删除上传的文件126。
[0019] 在方框206中,服务器系统102从计算设备120上传文件126的报头部分,并将上 传的文件126的报头部分存储在为组A文件存储所分配的锁定器A 114中。
[0020] 在方框208中,组A的计算设备120或计算设备122请求文件126从服务器系统 102到请求计算设备的下载。下载文件可包括文件到计算设备的流式传输,其中,流式传输 指的是以一定速率来下载文件,该速率允许在不要求文件整体被存储在请求计算设备上的 情况下重放文件的内容部分。
[0021] 服务器系统102通过将从计算设备120上传的文件126的报头部分和先前被存储 在服务器系统102上并找到匹配文件126的内容部分的文件的被存储内容连接在一起生成 用于下载的文件,其未被上传和/或存储在文件110中。因此,所生成的文件匹配在计算设 备120上存储的文件126,而不要求上传和/或存储文件126的至少内容部分。
[0022] 图3示出了根据本文公开原理的针对用于存储服务器系统102中的文件的方法 300的流程图。虽然为了方便起见而顺序地描述,但可以按照不同的顺序执行和/或并行地 执行所示动作中的至少一些。另外,一些实施方式可仅执行所示动作中的一些。可以由执 行从计算机可读介质(例如,储存器106)读取的文件管理系统130的指令的一个或多个处 理器104来执行方法300的操作中的至少一些。
[0023] 在方框302中,计算设备120-124 (例如,计算设备120)请求上传文件(例如,文件 126)到服务器系统102。服务器系统102确定存储在计算设备120上的文件126是否当前 被整个存储在服务器系统102上。通过将针对在计算设备120上的文件126的整体(例如, 报头和内容部分)计算的哈希值与针对当前存储在服务器系统102上的文件的哈希值相比 较来进行确定。在一些实施方式中,代理128可计算哈希值并经由网络118将该哈希值传输 到服务器系统102。在其他实施方式中,代理128可以将文件126传输到服务器系统102, 并且服务器系统102可以计算针对文件126的哈希值。服务器系统102可通过访问存储在 哈希映射表108中的文件哈希值来实现整个文件哈希比较以确定存储在服务器系统102上 的文件是否与存储在计算设备120上的文件126匹配。
[0024] 在方框304中,如果服务器系统102针对整个文件126识别到哈希值匹配,则服务 器系统102可以存储指示这样的匹配已被识别到的信息、识别文件126的信息、识别整个文 件126以及文件126的内容部分的哈希值的信息,以及指示被存储在服务器系统102上的 哪个文件的哈希值与文件126的文件哈希值匹配的信息。
[0025] 在方框304中,如果服务器系统102未能找到哈希值匹配,则在方框306中服务器 系统102确定存储在计算设备120上的文件126的内容部分是否当前被存储在服务器系统 102上。通过将针对计算设备120上的文件126的内容部分计算的哈希值与针对当前存储 在服务器系统102上的文件的内容部分的哈希值进行比较来进行确定。在一些实施方式 中,代理128可以计算哈希值并将该哈希值经由网络118传输到服务器系统102。在其他 实施方式中,代理128可以将文件126的内容部分传输到服务器系统102,并且服务器系统 102可以计算针对文件126的内容部分的哈希值。服务器系统102可以通过访问存储在哈 希映射表108中的内容哈希值来实现比较以确定当前存储在服务器系统102上的文件的内 容部分是否与存储在计算设备120上的文件126的内容部分匹配。
[0026] 在方框308中,如果服务器系统102针对文件126的内容部分识别到哈希匹配,则 服务器系统102可以存储指示这样的匹配已经被识别到的信息、识别文件126的信息、识别 整个文件126和/或文件126的内容部分的哈希值的信息,以及指示被存储在服务器系统 102上的哪个文件包括的内容部分的哈希值与文件126的内容哈希值匹配的信息。在方框 316中,服务器系统从计算设备120上传文件126的报头部分,并且将该上传的报头部分存 储在锁定器A 114中,锁定器A 114被分配用来存储从组A计算设备120-122上传的文件。
[0027] 如果服务器系统102未能在方框308中针对文件126的内容识别到哈希匹配,则 在方框310中,服务器系统102应用指纹来确定文件126的内容部分是否被存储为在服务 器系统102上的许可的主文件。计算文件126的内容部分的指纹并且服务器确定指纹是否 与存储在服务器系统102上的许可的主文件的指纹匹配。同时比较哈希值以识别整个匹配 文件或易受编码错误影响的文件的内容部分,比特率失配等,这导致不能识别到匹配,指纹 匹配可以基于内容本身使得指纹匹配不那么易受匹配错误的影响。可以使用多种音频和视 频指纹技术。
[0028] 在方框312中,如果服务器系统102识别到指纹匹配,则服务器系统102可以存储 指示这样的匹配已经被识别到的信息,识别文件126的信息以及识别指纹匹配文件126的 许可主文件的信息。
[0029] 在方框312中,如果服务器系统102未能找到指纹匹配,则服务器系统102在方框 314中从计算设备120上传文件126的内容部分,并且在方框316中上传文件126的报头 部分。因此,整个文件126被上传。例如,整个文件126可以作为单元被上传。服务器系统 102可将上传的文件126存储在分配以存储从组A的计算设备120-122上传的文件的锁 定器A 114中。系统服务器102还存储指示整个文件126被上传,识别文件126,文件126 的全部和内容部分的上传的报头和内容,以及哈希值的信息。
[0030] 如果哈希或指纹比较成功地识别到匹配,则服务器系统102不需要上传和/或存 储计算设备120的文件126的内容部分和/或报头部分。替代地,服务器系统102将文件 110之中的已存储的文件的部分识别为当由计算设备120或122请求文件126时可下载到 计算设备120-122。因此,服务器系统102节省本应被用来传输和/或存储文件126的网 络带宽和/或存储空间。
[0031] 图4示出了根据本文公开的原理的针对用于传送文件到远程计算设备120-124的 方法400的流程图。虽然为了方便起见而顺序地描述,但可以按照不同的顺序执行和/或 并行地执行所示动作中的至少一些。另外,一些实施方式可仅执行所示动作中的一些。可 以由执行从计算机可读介质(例如,储存器106)读取的文件管理系统130的指令的一个或 多个处理器104来执行方法300的操作中的至少一些。
[0032] 在方框402中,服务器系统102从组A的计算设备120,122接收文件下载请求。下 载请求可以请求通过组A的设备将先前存储在服务器系统102上的文件(例如,文件126) 传输到请求设备(例如,设备120)。下载文件可包括文件到计算设备120的流式传输,其中, 流式传输指的是以一定速率来下载文件,该速率允许在不要求文件整体被存储在请求计算 设备120上的情况下重放文件的内容部分。
[0033] 在方框404中,当所请求文件126被上传或存储在服务器系统102上时,服务器系 统102访问所记录的文件信息。如果文件信息指示当文件126的上传被请求时,具有匹配 针对将被上传的整个文件126计算的哈希值的哈希值的先前存储的文件被识别到,则在方 框406中先前存储的文件被下载到计算设备120作为文件126。
[0034] 在方框404中,如果所访问的文件信息指示结合文件126上传请求没有整体哈希 匹配被识别到,则在方框408中,当请求文件126的上传时,服务器系统102确定是否识别 到文件内容哈希匹配。如果文件信息指示当文件126的上传被请求时,先前存储的文件包 括具有匹配针对将被上传的文件126的内容部分计算的哈希值的哈希值的内容部分,则在 方框410中,服务器系统102生成用于下载到请求设备120的文件。
[0035] 服务器系统102可通过附加文件的内容部分到文件126的报头部分来生成用于下 载的文件,所述文件的内容部分在请求上传文件126之前被存储在服务器系统102的文件 之中,所述文件126的报头部分被从计算设备120上传。因此,在上传请求时生成的文件可 以匹配存储在计算设备120上的文件126,而不要求在服务器系统102上的文件126的内容 部分的上传和/或存储。生成的文件在方框410中被下载到请求设备120。
[0036] 在方框408中,如果所访问的文件信息指示结合文件上传请求没有文件内容哈希 匹配被识别到,则在方框412中,当请求文件126的上传时,服务器系统102确定是否识别 到文件内容指纹匹配。如果文件信息指示当文件126的上传被请求时,存储在服务器系统 102上的许可主文件是针对文件126的内容的指纹匹配,则在方框414中,服务器系统102 下载许可主文件到请求设备120作为文件126。
[0037] 在方框412中,如果文件信息指示结合文件上传请求没有指纹匹配被识别到,则 在方框416中,基于先前上传请求服务器系统102确定请求的文件126报头和内容二者 (即,文件126整体)被上传并且被存储在服务器系统102上。因此,服务器系统102在方框 416中下载存储的文件126到计算设备120。
[0038] 以上讨论意图说明本发明的原理和各种示例。一旦完全认识到以上公开,许多变 更和修改对于本领域的技术人员而言将是显而易见的。意图在于将以下权利要求解释为涵 盖所有此类变更和修改。
【权利要求】
1. 一种方法,包括: 由服务器通过将针对第一文件的第一部分计算的第一哈希值与针对第二文件的第一 部分计算的第二哈希值相比较来确定存储在第一计算设备上的第一文件是否与存储在服 务器上的第二文件相匹配; 由服务器基于比较的结果来确定是否将上传所述第一文件的第一部分; 由服务器来上传所述第一文件的第二部分,其中,第一部分和第二部分是不重叠的;以 及 由服务器通过响应于用于要从服务器下载第一文件的请求向第一文件的第二部分附 加第二文件的第一部分而生成用于从服务器下载的第一文件。
2. 权利要求1的方法,还包括: 由服务器通过将针对整个第一文件计算的第三哈希值与针对整个第二文件计算的第 四哈希值相比较来确定存储在第一计算设备上的第一文件是否与存储在服务器上的第二 文件相匹配; 由服务器通过响应于用于要从服务器下载第一文件的请求向计算设备下载所述整个 第二文件。
3. 权利要求1的方法,还包括: 基于第一哈希值与第二哈希值匹配而将第一文件识别为可从服务器下载到第一计算 设备。
4. 权利要求1的方法,还包括: 基于第一哈希值不同于第二哈希值而将针对第一文件的第一部分计算的指纹值与针 对主文件计算的指纹值相比较;以及 基于第一指纹值不同于第二指纹值而将第一文件上传到服务器。
5. 权利要求1的方法,其中,所述生成是响应于来自第二计算设备的请求,并且还包括 响应于来自第二计算设备的请求而将第一文件下载到第二计算设备,其中,第二计算设备 通过共同所有权而与第一计算设备相关联。
6. 权利要求1的方法,其中,所述第二文件被从不与第一计算设备相关联的第二计算 设备上传到服务器。
7. -种计算设备,包括: 处理器,用以: 接收对应于存储在客户端设备上的内容文件的内容部分的内容哈希值; 通过将内容哈希值与对应于先前存储在计算设备上的文件的内容部分的多个存储哈 希值相比较来确定是否将内容文件的内容部分上传到所述计算设备; 基于内容哈希值与所述多个存储哈希值中的一个匹配而将内容文件的内容部分识别 为与先前存储在计算设备上的文件中的一个的内容部分具有精确位播放对应关系;以及 响应于用于要被下载内容文件的请求而下载先前存储在计算设备上的与内容文件的 内容部分具有对应关系的文件中的一个的内容部分。
8. 权利要求7的计算设备,其中,所述处理器还用以: 从客户端设备接收内容文件的报头部分,其中,该报头部分和该内容部分是不重叠的; 以及 响应于用于要被下载内容文件的请求而向先前存储在计算设备上的与内容文件的内 容部分具有对应关系的文件中的一个的内容部分前面附加所接收到的报头部分。
9. 权利要求7的计算设备,其中,所述处理器还用以: 接收对应于存储在第一客户端设备上的全体内容文件的文件哈希值; 通过将所述文件哈希值与对应于先前存储在计算设备上的文件的多个存储哈希值相 比较来确定是否从所述第一客户端设备将内容文件全部上传到计算设备; 基于内容哈希值与所述多个存储哈希值中的一个匹配而将内容文件识别为与先前存 储在计算设备上的文件中的一个具有精确位播放对应关系;以及 响应于用于要被下载内容文件的请求而下载先前存储在计算设备上的与内容文件具 有对应关系的文件中的一个。
10. 权利要求7的计算设备,其中,所述处理器还用以: 响应于不同于所述多个存储哈希值中的每个的内容哈希值来确定针对内容文件的内 容部分的指纹是否对应于针对存储在计算设备上的主文件的指纹;以及 基于针对内容部分的指纹不对应于针对存储在计算设备上的主文件的指纹而将内容 文件上传到计算设备。
11. 权利要求7的计算设备,其中,所述处理器还用以: 响应于来自第二客户端设备的请求而下载先前存储在计算设备上的文件中的一个的 内容部分,该内容部分与内容文件的内容部分具有对应关系,其中所述第二客户端设备与 第一客户端设备不同并且通过共同所有权与所述第一客户端设备相关联。
12. 权利要求7的计算设备,其中,所述处理器还用以: 接收先前存储在计算设备上的文件中的一个的内容部分,该内容部分与来自第二客户 端设备的内容部分具有对应关系,所述第二客户端设备通过共同所有权不与所述第一客户 端设备相关联。
13. -种用指令编码的计算机可读存储介质,该指令在被执行时促使处理器: 接收对应于存储在第一客户端设备上的全体内容文件的文件哈希值; 通过将所述文件哈希值与对应于先前存储在内容服务器上的文件的多个存储哈希值 相比较来确定是否从所述第一客户端设备将内容文件全部上传到内容服务器; 基于内容哈希值与所述多个存储哈希值中的一个匹配而将内容文件识别为与先前存 储在内容服务器上的文件中的一个具有精确位播放对应关系;以及 响应于来自用于要被下载内容文件的请求客户端设备的请求,下载先前存储在内容服 务器上与请求客户端设备的内容文件具有对应关系的文件中的一个。
14. 权利要求13的计算机可读存储介质,进一步用指令编码,该指令在被执行时促使 处理器: 基于未能将内容文件识别为与先前存储在内容服务器上的文件中的一个具有精确位 播放的对应关系: 接收对应于存储在客户端设备上的内容文件的内容部分的内容哈希值; 通过将所述内容哈希值与对应于先前存储在内容服务器上的文件的内容部分的多个 存储哈希值相比较来确定是否从所述客户端设备将内容文件的内容部分上传到内容服务 器; 基于内容哈希值与所述多个存储哈希值中的一个匹配而将内容文件的内容部分识别 为与先前存储在内容服务器上的文件中的一个的内容部分具有精确位播放对应关系; 从客户端设备接收内容文件的报头部分,其中所述报头部分和所述内容部分是不重叠 的;以及 响应于来自用于要被下载内容文件的请求客户端设备的请求,向先前存储在内容服务 器上的与内容文件的内容部分具有对应关系的文件中的一个的内容部分前面附加所接收 到的报头部分以形成合成文件;以及 下载该合成文件到所述请求客户端设备。
15.权利要求14的计算机可读存储介质,进一步用指令编码,该指令在被执行时促使 处理器: 基于未能将内容文件的内容部分识别为与先前存储在内容服务器上的文件中的一个 的内容部分具有精确位播放的对应关系: 计算所述内容文件的内容部分的指纹; 确定所述内容服务器是否包含具有与所述内容文件的内容部分的指纹匹配的指纹的 主文件; 基于主文件具有与所述内容文件的内容部分的指纹匹配的指纹而将该主文件识别为 可下载到客户端计算设备。
【文档编号】G06F15/16GK104067259SQ201280068717
【公开日】2014年9月24日 申请日期:2012年4月16日 优先权日:2012年4月16日
【发明者】D.P.比尔迈尔, J.C.霍尔, A.C.巴克莱, J.M.克伦, H.H.亚马莫托 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1