一种文件分块下载方法和装置与流程

文档序号:14993512发布日期:2018-07-20 23:01阅读:202来源:国知局

本申请涉及文件下载领域,具体而言,涉及一种文件分块下载方法和装置。



背景技术:

在通过客户端下载文件时,传统的下载方式为单连接下载,而由于在某些情况下,单个连接的下载速度会受到限制,因此现有技术中,多通过分块下载的方式来实现一个文件的分块下载,进而摆脱当前网络环境对单个连接的下载速度的限制。例如申请号为201510461238.9的专利申请公开了以下技术方案:下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;每下载完一个分块,判断该分块是否与己下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件。上述技术方案中对文件分块下载,并通过边下载边合并的方法来节约下载时间。然而,对文件分块的合并依旧会占用一定的下载时间,使得分块下载过程耗时过长。

针对相关技术中文件分块下载过程耗时过长的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请提供了一种文件分块下载方法,以解决相关技术中文件分块下载过程耗时过长的问题。

根据本申请的一个方面,提供了一种文件分块下载方法。该方法包括:获取目标文件大小;根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立多个下载请求对目标文件进行下载;将多个下载请求对应的下载数据覆盖于第一文件中。

进一步地,建立多个下载请求对目标文件进行下载包括:依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

进一步地,多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

进一步地,将多个下载请求对应的下载数据覆盖于第一文件中包括:获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。

根据本申请的另一方面,提供了一种文件分块下载装置。该装置包括:获取单元,用于获取目标文件大小;预创建单元,用于根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立单元,用于建立多个下载请求对目标文件进行下载;覆盖单元,用于将多个下载请求对应的下载数据覆盖于第一文件中。

进一步地,建立单元包括:第一建立模块,用于依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;取消模块,用于当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

进一步地,多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

进一步地,覆盖单元包括:获取模块,用于获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;覆盖模块,用于将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。

根据本申请的另一方面,提供了一种存储介质,上述存储介质包括存储的程序,其中,程序执行上述任意一项的文件分块下载方法。

根据本申请的另一方面,提供了一种处理器,上述处理器用于运行程序,其中,程序运行时执行上述任意一项的文件分块下载方法。

本申请通过以下方法:获取目标文件大小;根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立多个下载请求对目标文件进行下载;将多个下载请求对应的下载数据覆盖于第一文件中,使得多个下载请求下载的数据能够作为一个完成的数据存储在上述第一文件中,而不是作为多个分块数据进行存储,进而省去了现有技术中分块下载的分块数据合并的过程,解决了相关技术中文件分块下载过程耗时过长的问题,进而达到了减小文件分块下载过程耗时的效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的文件分块下载方法的流程图;以及

图2是根据本申请实施例提供的文件分块下载装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请的实施例,提供了一种文件分块下载方法。

图1是根据本申请实施例的文件分块下载方法的流程图。如图1所示,该方法包括以下步骤:

步骤s101,获取目标文件大小。

需要说明的是,在客户端向服务器发出下载请求时,服务器返回信息中包含目标文件的大小,客户端可直接从上述服务器返回信息中获取目标文件的大小。

步骤s102,根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同。

需要说明的是,上述第一文件为预创建的临时文件,不包含任何有效内容。上述第一文件大小与目标文件大小相同,下载请求对应下载的目标文件数据可直接写入第一文件中的对应位置,进而可使多个下载请求对应的下载数据直接作为一个完成的数据保存,而不是作为多个分块数据保存。

步骤s103,建立多个下载请求对目标文件进行下载。

需要说明的是,上述下载请求由客户端向服务器发送的下载请求,例如,客户端向服务器发送多个http请求,进而服务器根据接收到的http请求向客户端反馈请求响应和http请求对应下载数据。

可选的,建立多个下载请求对目标文件进行下载包括:依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

需要说明的是,上述下载请求对应的下载为对该下载请求中所请求下载的数据进行的下载。上述该下载请求之后建立的下载请求为紧随该下载请求建立的下一个下载请求,当该下载请求对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,但在该下载请求之后建立的下载请求对应的下载未正常执行,则该下载请求对应的下载继续,当再下一个下载请求对应的下载正常执行时,该下载请求对应下载区间中未与该再下一个下载请求对应下载区间重合部分的数据下载完成后结束下载,取消该下载请求,以此类推。

例如,依次建立第一下载请求,第二下载请求,第三下载请求,其对应下载区间设置如前,则当第二下载请求对应的下载正常执行时,第一下载请求对应下载区间中未与第二下载请求对应下载区间重合的部分数据下载完成后,第一下载请求对应的下载完成,取消第一下载请求。而当第二下载请求对应的下载未正常执行,第三下载请求对应的下载正常执行时,第一下载请求对应下载区间中未与第三下载请求对应下载区间重合的部分数据下载完成后,第一下载请求对应的下载完成,取消第一下载请求。

可选的,为了保证下载请求的顺利建立,在最初依次建立多个下载请求时,客户端向服务器发送第一下载请求,接收服务器返回的与第一下载请求对应的第一请求成功响应并建立第一下载请求;当客户端检测到服务器返回第一请求成功响应后,向服务器发送第二下求,进而通过相同的方式来依次建立多个下载请求。即在先建立的预设个数的下载请求是在接收到前一个建立的下载请求对应的请求成功响应后建立的,之后的下载请求的建立并不需要上述条件。

需要说明的是,下载请求对应的下载区间为该下载请求在建立之前在下载请求中确定的该下载请求将要下载目标文件中的哪部分数据。上述区间的含义为:将目标文件中的某个位置到文件开头所包括的数据的大小作为该位置的标记,区间为目标文件中从一个位置到另一个位置。例如,目标文件大小为10g,下载请求对应的下载区间为5g-10g,即该下载请求对应下载的数据为从目标文件中5g位置到10g位置之间的数据。进而,当该下载请求之后的下载请求对应的下载区间为6g-10g,则在下载请求未出现错误的情况下,该下载请求最终实际下载的数据为5g-6g这个区间内的数据。

需要说明的是,由于在文件的分块下载中,当任意一个下载请求出现错误,则该下载请求对应的下载将不会下载其对应的下载数据,而如果其对应的下载区间也没有在其他下载请求的下载区间中,则该下载请求对应的下载数据将下载失败,进而导致整个目标文件的下载失败。而在上述实施方式中,将首先建立的下载请求对应的下载区间设置为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前,则使得在后建立的下载请求的下载区间都在其前一个下载请求的下载区间之内,当所有下载请求都未出现错误时,则任意一个下载请求对应的下载最终下载的数据的区间为其对应的区间中减去其后一个下载请求对应区间后的区间;而当任意一个下载请求出现错误时,该下载请求对应的下载原本应该下载的数据将由其前一个下载请求对应的下载来完成,进而避免了由于文件分块下载时一个或多个下载请求出现错误而导致目标文件下载失败。

可选的,多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

需要说明的是,同时执行的下载请求的数量过多将导致下载程序占用客户端运行内存过大,而数量过少则会导致分块下载与单连接下载的效果不明显,使分块下载失去意义。因此同时执行的下载请求的数量需要保持在一个稳定的数量。上述实施方式中,通过在初始阶段,建立预设数量的下载请求,在有下载请求结束时,建立新的下载请求,进而使得同时执行的下载请求的数量保持为上述预设数量。其中,上述预设数量的确定通过实验来实现。

需要说明的是,如果多个下载请求对应的下载区间为分散的或随机的,则下载数据依次写入预创建文件中的位置跨度较大,文件指针的偏移量也较大,且目标文件越大,文件指针的偏移量就越大,下载数据写入预创建文件的效率越低。通过上述实施方式,使得多个下载请求对应的下载数据在目标文件中对应的位置为按顺序排列的,因此下载完成的数据是按顺序依次覆盖至上述第一文件中的,进而使得文件指针的偏移量较小,使得下载数据覆盖入第一文件的效率较高。当目标文件越大时,上述技术效果越明显。

步骤s104,将多个下载请求对应的下载数据覆盖于第一文件中。

可选的,将多个下载请求对应的下载数据覆盖于第一文件中包括:获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。

需要说明的是,上述下载完成的数据并非指下载请求完成下载时其下载的全部数据,而是指在该下载请求的下载过程中,已下载到客户端所在设备上的数据。根据下载请求的下载区间和下载时间轴,可得出该下载请求当前已下载到客户端所在设备上的数据在上述第一文件中对应的位置,进而将上述数据写入第一文件中对应的位置。

例如,目标文件的大小为100m,上述多个下载请求中的其中一个下载请求对应的下载区间为50m到100m,在下载过程中,该下载请求以2m为单位进行下载,则当该下载请求下载完成第三个2m数据后,可根据该任务对应区间的50m和该2m数据为第三个2m数据,判断出该2m数据在目标文件中对应的位置为54m-56m的位置。

本申请实施例提供的文件分块下载方法,通过获取目标文件大小;根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立多个下载请求对目标文件进行下载;将多个下载请求对应的下载数据覆盖于第一文件中,解决了相关技术中文件分块下载过程耗时过长的问题,进而达到了减小文件分块下载过程耗时的效果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种文件分块下载装置,需要说明的是,本申请实施例的文件分块下载装置可以用于执行本申请实施例所提供的用于文件分块下载方法。以下对本申请实施例提供的文件分块下载装置进行介绍。

图2是根据本申请实施例的文件分块下载装置的示意图。如图2所示,该装置包括:获取单元10、预创建单元20、建立单元30和覆盖单元40。

具体地,获取单元10,用于获取目标文件大小;预创建单元20,用于根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立单元30,用于建立多个下载请求对目标文件进行下载;覆盖单元40,用于将多个下载请求对应的下载数据覆盖于第一文件中。

可选的,建立单元30包括:第一建立模块,用于依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;取消模块,用于当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

可选的,多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

可选的,覆盖单元40包括:获取模块,用于获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;覆盖模块,用于将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。

本申请实施例提供的文件分块下载装置,通过获取单元10获取目标文件大小;预创建单元20根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立单元30建立多个下载请求对目标文件进行下载;覆盖单元40将多个下载请求对应的下载数据覆盖于第一文件中,解决了相关技术中文件分块下载过程耗时过长的问题,进而达到了减小文件分块下载过程耗时的效果。

文件分块下载装置包括处理器和存储器,上述获取单元10、预创建单元20、建立单元30和覆盖单元40等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来使减小文件分块下载过程耗时。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现文件分块下载方法。

本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行文件分块下载方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取目标文件大小;根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立多个下载请求对目标文件进行下载;将多个下载请求对应的下载数据覆盖于第一文件中。

建立多个下载请求对目标文件进行下载包括:依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

将多个下载请求对应的下载数据覆盖于第一文件中包括:获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取目标文件大小;根据目标文件的大小预创建第一文件,其中,第一文件的大小与目标文件大小相同;建立多个下载请求对目标文件进行下载;将多个下载请求对应的下载数据覆盖于第一文件中。

建立多个下载请求对目标文件进行下载包括:依次建立多个下载请求对目标文件进行下载,其中,多个下载请求中首先建立的下载请求对应的下载区间为整个目标文件,其他下载请求对应的下载区间为其对应的区间起始点到目标文件的结尾,先建立的下载请求对应的区间起始点位于后建立的下载请求对应的区间起始点之前;当多个下载请求中任意一个对应的下载区间中未与在该下载请求之后建立的下载请求对应的下载区间重合的部分的数据下载完成,且在该下载请求之后建立的下载请求对应的下载正常执行时,该下载请求对应的下载完成,取消该下载请求。

多个下载请求分为初始建下载请求和后续下载请求,初始下载请求为下载初始建立的下载请求,初始下载请求的数量为预设数量,当初始下载请求中任意一个对应的下载完成后,建立后续下载请求,当后续下载请求对应的下载完成后,再次建立新的后续下载请求,使同时执行的下载请求的数量为预设数量。

将多个下载请求对应的下载数据覆盖于第一文件中包括:获取多个下载请求中任意一个对应的下载数据在第一文件中对应的位置;将多个下载请求中任意一个对应的下载数据覆盖于第一文件中对应的位置上。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1