【发明内容】
本发明所要解决的技术问题是提供一种向用户提供文件的方法及装置,以实现无论以何种方式在文件的链接地址中展示文件名,均能在接收到用户请求后向用户返回正确文件的目的。
本发明为解决技术问题而采用的技术方案是提供一种向用户提供文件的方法,包括:根据文件的存储序列号确定所述文件的存储路径,并将所述文件以所述存储序列号为名称保存到所述文件的存储路径下;根据所述文件的存储路径确定所述文件在页面上的链接地址;当获取到用户对所述文件在页面上的链接地址发送的请求时,根据所述请求对应的链接地址确定所述文件的存储序列号;利用所述文件的存储序列号确定所述文件,并将所述文件返回给用户。
根据本发明之一优选实施例,所述文件的存储序列号包括数字、字母、或者,数字与字母的组合。
根据本发明之一优选实施例,根据文件的存储序列号确定所述文件的存储路径的步骤具体包括:根据预设策略确定文件的存储序列号;在到达所述文件的寻址路径中设定与所述文件的存储序列号同名的目录,得到所述文件的存储路径。
根据本发明之一优选实施例,根据所述文件的存储路径确定所述文件在页面上的链接地址的步骤具体包括:利用所述文件的存储路径和所述文件的主题名生成所述文件在页面上的链接地址;或者,生成随机数,并利用所述文件的存储路径和所述随机数生成所述文件在页面上的链接地址。
根据本发明之一优选实施例,根据所述请求对应的链接地址确定所述文件的存储序列号的步骤具体包括:从所述请求对应的链接地址包含的目录中提取目录名作为所述文件的存储序列号。
根据本发明之一优选实施例,利用所述文件的存储序列号确定所述文件的步骤具体包括:使用所述文件的存储序列号替换所述请求对应的链接地址中的文件名,并对替换后的所述请求对应的链接地址进行解析,以得到所述文件。
根据本发明之一优选实施例,利用所述文件的存储序列号确定所述文件的步骤具体包括:从所述请求对应的链接地址中提取所述文件的存储路径,并以所述文件的存储序列号为名称在所述文件的存储路径下进行查找,以得到所述文件。
本发明还提供了一种向用户提供文件的装置,包括:路径确定单元,用于根据文件的存储序列号确定所述文件的存储路径;存储单元,用于将所述文件以所述存储序列号为名称保存到所述文件的存储路径下;地址生成单元,用于根据所述文件的存储路径确定所述文件在页面上的链接地址;存储号确定单元,用于当获取到用户对所述文件在页面上的链接地址发送的请求时,根据所述请求对应的链接地址确定所述文件的存储序列号;文件返回单元,用于利用所述文件的存储序列号确定所述文件,并将所述文件返回给用户。
根据本发明之一优选实施例,所述文件的存储序列号包括数字、字母、或者,数字与字母的组合。
根据本发明之一优选实施例,所述路径确定单元具体包括:序列号确定单元,用于根据预设策略确定文件的存储序列号;目录确定单元,用于在到达所述文件的寻址路径中设定与所述文件的存储序列号同名的目录,得到所述文件的存储路径。
根据本发明之一优选实施例,所述地址生成单元具体包括:第一链接单元,用于利用所述文件的存储路径和所述文件的主题名生成所述文件在页面上的链接地址。
根据本发明之一优选实施例,所述地址生成单元具体包括:数字产生单元,用于生成随机数;第二链接单元,用于利用所述文件的存储路径和所述随机数生成所述文件在页面上的链接地址。
根据本发明之一优选实施例,所述存储号确定单元根据所述请求对应的链接地址确定所述文件的存储序列号的方式具体包括:从所述请求对应的链接地址包含的目录中提取目录名作为所述文件的存储序列号。
根据本发明之一优选实施例,所述文件返回单元利用所述文件的存储序列号确定所述文件的方式具体包括:使用所述文件的存储序列号替换所述请求对应的链接地址中的文件名,并对替换后的所述请求对应的链接地址进行解析,以得到所述文件。
根据本发明之一优选实施例,所述文件返回单元利用所述文件的存储序列号确定所述文件的方式具体包括:从所述请求对应的链接地址中提取所述文件的存储路径,并以所述文件的存储序列号为名称在所述文件的存储路径下进行查找,以得到所述文件。
由以上技术方案可以看出,通过文件的存储序列号确定文件的存储路径,并依据文件的存储路径生成文件在页面上的链接地址,可以保证根据请求对应的链接地址一定能够得到文件的存储序列号,从而能正确定位到需要返回给用户的文件。本发明中,在定位返回文件时,不依赖请求对应的链接地址中的文件名,因此无论以何种方式在页面的链接地址中展示文件名,对最终返回的文件均无影响,也就是说,利用本发明的方案,无论以何种方式在页面的链接地址中展示文件名,均能在接收到用户请求后向用户返回正确的文件。此外,与现有技术相比,利用本发明的技术方案,文件在页面上的链接地址中可以以任意方式展示文件名,增强了页面上的链接地址中文件名展示的灵活性。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
请参考图1,图1为本发明中向用户提供文件的方法的流程示意图。如图1所示,该方法包括:
步骤S101:根据文件的存储序列号确定文件的存储路径,并将文件以存储序列号为名保存到文件的存储路径下。
步骤S102:根据文件的存储路径确定文件在页面上的链接地址。
步骤S103:当获取到用户对文件在页面上的链接地址发送的请求时,根据该请求对应的链接地址确定文件的存储序列号。
步骤S104:利用文件的存储序列号确定对应的文件,并将确定的文件返回给用户。
下面对上述步骤进行具体说明。
步骤S101中,根据文件的存储序列号确定文件的存储路径,具体包括:根据预设策略确定文件的存储序列号,以及,在到达文件的寻址路径中设定与文件的存储序列号同名的目录,得到文件的存储路径。
本发明中,存储序列号包括数字、字母、或者,数字与字母的组合。例如“123”、“abc”、“abc213”等。预设策略包括:以递增的方式确定文件的存储序列号,或者以递减的方式确定文件的存储序列号,或者以随机数的方式确定文件的存储序列号等等,本发明对此不做限制。例如,有若干个文件需要存储,则每个文件依存储时的顺序,从序列号“1”开始,分别以递增的方式得到一个存储序列号。
寻址路径为从服务器域名开始,到到达文件所经过的路径,在寻址路径中设立与文件的存储序列号同名的目录,具体地,可参考下面的例子。
假设待保存的文件的存储序列号为“123”,服务器域名为“mp3.baidu.com”,则该文件的存储路径可以表示为“mp3.baidu.com/123/”。应该理解,上述所举例子仅为一种优选实施方式,实际上,该文件的存储路径还可以是“mp3.baidu.com/123/123/”,只要在寻址路径中设立与文件的存储序列号同名的目录,均在本发明的范围之内。
此外,步骤S101中根据文件的存储序列号确定文件的存储路径,除了上述在寻址路径中设立与存储序列号同名的目录以外,还可以在寻址路径中设定名称中包含存储序列号的目录,例如上述例子中存储序列号为“123”的文件,存储路径也可以是“mp3.baidu.com/music123/”,本领域技术人员应该理解,根据文件的存储序列号确定文件的存储路径可以有多种方式,本说明书不再一一列举。
步骤S101中,在得到文件的存储路径后,就会将该文件以存储序列号为名称保存到对应的存储路径下。例如上面例子中存储序列号为“123”的文件,就会以“123”为文件名保存到名为“mp3.baidu.com”的服务器上名为“123”的目录下。本领域技术人员应该理解,以存储序列号为名,指的是以存储序列号为文件基本名,文件在保存时,文件名还包括扩展名部分,由于文件扩展名在保存时可由服务器根据文件类型自动确定,本说明书对此不再对此赘述。
步骤S102中,根据文件的存储路径确定文件在页面上的链接地址,本说明书给出了两种实施方式。下面将对这两种实施方式进行详细介绍。
步骤S102的实施方式一:
利用文件的存储路径和文件的主题名生成文件在页面上的链接地址。文件的主题名指的是含有语义特征的名称,例如一首歌的主题名就是这首歌的歌名,或者一篇文章的主题名就是这篇文章的标题等等。主题名通常与文件的内容相关,用户通过主题名,可以明确该文件的内容属性。文件的主题名可在预先取得文件时从保存文件的数据库中获取到,或者是预先取得文件时从文件内部的信息中获取到,由于这可以通过多种现有技术实现,本发明对此不再赘述。
例如一首mp3音乐的主题名为“冰雨”,其对应的存储路径为“mp3.baidu.com/123/”,则该音乐在页面上的链接地址可以确定为“http://mp3.baidu.com/123/冰雨.mp3”。此外,文件的主题名还可以是带有附属信息的名称,如“冰雨”这首歌的主题名,还可以表示为“冰雨刘德华”、“冰雨—经典重现”等等。通过本实施方式,用户在下载文件时,默认保存的文件名,就是链接地址中的主题名,用户在下载文件时不需要修改文件名,给用户带来了极大的便利,此外,由于本发明中对主题名没有任何限制,因此主题名能够包含很丰富的信息,可以给用户带来很好的用户体验。
步骤S102的实施方式二:
生成随机数,并利用文件的存储路径和该随机数生成文件在页面上的链接地址。
通过随机算法可以取得随机数,此外,还可以获取当前时刻并将当前时刻作为随机数。当前时刻是指从某个时刻以来的秒数,通常是指1970年1月1日以来的秒数,可通过专门的接口函数得到。可以看出,如果通过获取当前时刻得到随机数,则在任意不相同时刻获取的随机数都是不一样的。如果随机数为“8903834”,主题名为“冰雨”的mp3文件的存储路径为“mp3.baidu.com/123/”,则该文件在页面上的链接地址可以确定为“http://mp3.baidu.com/123/8903834.mp3”。如果与实施方式一中的主题名结合,该链接地址还可以确定为“http://mp3.baidu.com/123/冰雨_8903834.mp3”。
有些网络运营商,会对一些媒体文件进行缓存,以提高在本域内用户下载文件时的速度。当用户向某个音乐服务器请求文件下载时,网络运营商的服务器发现该文件名对应的文件在本服务器中已经存在,就会把这个文件直接返回给用户,而不是把该请求发送到真正请求的音乐服务器处。但是用户针对不同的链接地址请求的同名歌曲,很可能不是真正相同的歌曲,例如歌手侃侃和歌手南风都有一首名为“滴答”的歌曲,当网络运营商服务器上已经缓存了南风版本的“滴答”时,后续有该网络运营商所属域的用户请求某个音乐服务器上属于侃侃版本的“滴答”时,该请求并没有到达最终的音乐服务器,而是被网络运营商拦截,用户得到的返回文件是南风版本的“滴答”。
上述由于网络运营商对媒体文件进行缓存而造成的无法向用户返回正确文件的问题,通过实施方式二能够得到很好的解决。因为文件的链接地址中的文件名如果以普通随机数的方式展示,当产生该随机数的范围足够大时同名的概率非常小,如果以当前时刻的随机数的方式展示,则不存在同名的可能。通过当前时刻形成的随机数,每个不同时刻生成的网页中,文件的链接地址中显示的文件名都是不同的,这样用户对文件链接地址发送的请求就能够到达真正的服务器处并从真正的服务器处获取正确的文件返回。
步骤S103中,当获取到用户对文件在页面上的链接地址发送的请求时,根据该请求对应的链接地址确定文件的存储序列号的方式具体包括:
从该请求对应的链接地址包含的目录中提取目录名作为文件的存储序列号。
用户点击文件在页面上的链接地址时,与该链接地址相关的请求就会发送到该链接地址指定的服务器,例如链接地址为“http://mp3.baidu.com/123/冰雨.mp3”,当用户点击该链接地址后,请求就被发送到域名为“mp3.baidu.com”的服务器。请求对应的链接地址,指的是请求数据中包含的链接地址,该链接地址是基于文件在页面上的链接地址生成的,但是请求对应的链接地址有可能不完全与文件在页面上的链接地址相同。例如域名为“mp3.baidu.com”的服务器接收到的请求对应的链接地址为“http://mp3.baidu.com/123/***.mp3”,其中“***”部分有可能是乱码而不是文件在页面上的链接地址中指定的“冰雨”。从前文的说明可以看出,由于请求对应的链接地址是基于文件在页面上的链接地址得到的,而文件在页面上的链接地址包含的文件存储路径中的目录里有与文件的存储序列号同名的目录,因此,在步骤S103中,只需要将对应的目录名提取出来即可得到文件的存储序列号。
在得到文件的存储序列号后,步骤S104中,利用文件的存储序列号确定对应的文件的方式可以有以下两种实施方式,下面对这两种方式分别进行介绍。
步骤S104的实施方式一:
使用文件的存储序列号替换请求对应的链接地址中的文件名,并对替换后的请求对应的链接地址进行解析,以得到与存储序列号对应的文件。
例如:请求对应的链接地址为“http://mp3.baidu.com/123/%$#.mp3”,根据步骤S103知道文件的存储序列号为“123”,于是用“123”替换“%¥#”,得到替换后的请求对应的链接地址为“http://mp3.baidu.com/123/123.mp3”,再调用服务器现有的解析链接地址的接口,即可得到存储序列号“123”对应的文件。
在这种方式下,对链接地址的解析仍由现有技术实现,本发明只需要根据文件的存储序列号修改待解析的链接地址即可。
步骤S104的实施方式二:
从请求对应的链接地址中提取文件的存储路径,并以文件的存储序列号为名称在文件的存储路径下进行查找,以得到与存储序列号对应的文件。
例如:请求对应的链接地址为“http://mp3.baidu.com/123/%$#.mp3”,,则根据其中的分隔符“/”可以提取出文件的存储路径为“mp3.baidu.com/123/”,在该路径下查找名为“123”的文件,即可得到与存储序列号“123”对应的文件。
在这种方式下,不需要调用服务器现有的解析链接地址的接口,而是提供了一种利用存储序列号定位最终返回文件的方法。
将本发明与现有技术进行比较可以看出:
在现有技术中,服务器获得请求后,直接对请求对应的链接地址进行解析,一旦该链接地址中的文件名成了乱码,就会导致解析错误,使得正确的文件无法返回。在本发明中,并不依赖请求对应的链接地址中的文件名定位返回文件,而是通过请求对应的链接地址中包含的文件存储序列号来定位返回文件,因此本发明可以有效地解决由于文件名乱码而导致正确文件无法返回的技术问题。此外,作为本领域技术人员可以看出,利用本发明的方案,实际上可以使得文件在服务器上的存储名(也就是最终在服务器上定位返回文件时使用的名称)与文件在页面上的链接地址中的显示名相脱离,从而使得文件的显示名可以有很大的灵活性。在本发明的方案中,由于显示名的改变,不会影响最终文件的返回,因此任何可通过更改显示名解决的技术问题,都可以参考本发明方案进行实施,而现有技术中单纯更改显示名则会导致无法在服务器上找到正确的文件进行返回。
请参考图2,图2为本发明中向用户提供文件的装置的结构示意框图。如图2所示,该装置包括:路径确定单元201、存储单元202、地址生成单元203、存储号确定单元204以及文件返回单元205。
其中,路径确定单元201,用于根据文件的存储序列号确定文件的存储路径。存储单元202,用于将文件以存储序列号为名称保存到文件的存储路径下。地址生成单元203,用于根据文件的存储路径确定文件在页面上的链接地址。存储号确定单元204,用于当获取到用户对文件在页面上的链接地址发送的请求时,根据该请求对应的链接地址确定文件的存储序列号。文件返回单元205,用于利用文件的存储序列号确定相应的文件,并将确定的文件返回给用户。
请参考图3,图3为本发明中路径确定单元的实施例的结构示意框图。如图3所示,路径确定单元201包括:序列号确定单元2011和目录确定单元2012。
其中序列号确定单元2011,用于根据预设策略确定文件的存储序列号。目录确定单元2012,用于在到达文件的寻址路径中设定与文件的存储序列号同名的目录,得到文件的存储路径。
本发明中的存储序列号包括:数字、字母、或者数字与字母的组合。例如“123”、“abc”、“abc213”等。预设策略具体地包括:以递增的方式确定文件的存储序列号,或者以递减的方式确定文件的存储序列号,或者以随机数的方式确定文件的存储序列号等等。例如,有若干个文件需要存储,则每个文件依存储时的顺序,从序列号“1”开始,分别以递增的方式得到序列号确定单元2011分配的一个存储序列号。
寻址路径为从服务器域名开始,到到达文件所经过的路径,目录确定单元2012在寻址路径中设立与文件的存储序列号同名的目录,具体地,可参考下面的例子。
假设待保存的文件的存储序列号为“123”,服务器域名为“mp3.baidu.com”,则目录确定单元2012可将该文件的存储路径确定为“mp3.baidu.com/123/”。应该理解,上述所举例子仅为一种优选实施方式,实际上,该文件的存储路径还可以是“mp3.baidu.com/123/123/”,只要目录确定单元2012在寻址路径中设立与文件的存储序列号同名的目录,均在本发明的范围之内。
在得到文件的存储路径后,存储单元202就会将该文件以存储序列号为名保存到对应的存储路径下。例如上面例子中存储序列号为“123”的文件,就会被存储单元202以文件名“123”保存到名为“mp3.baidu.com”的服务器的名为“123”的目录下。
请参考图4a和图4b,图4a和图4b分别为本发明中地址生成单元的两个实施例的结构示意框图。
在图4a所示的实施例中,地址生成单元203包括第一链接单元2031。其中第一链接单元2031用于利用文件的存储路径和文件的主题名生成文件在页面上的链接地址。文件的主题名指的是含有语义特征的名称,例如一首歌的主题名就是这首歌的歌名,或者一篇文章的主题名就是这篇文章的标题等等。主题名通常与文件的内容相关,用户通过这个主题名,可以明确该文件的内容属性。
例如一首mp3音乐的主题名为“冰雨”,其对应的存储路径为“mp3.baidu.com/123/”,则第一链接单元2031可将该音乐在页面上的链接地址确定为“http://mp3.baidu.com/123/冰雨.mp3”。此外,文件的主题名还可以是带有附属信息的名称,如“冰雨”这首歌的主题名,还可以表示为“冰雨刘德华”、“冰雨—经典重现”等等。通过本实施例,用户在下载文件时,默认保存的文件名,就是链接地址中的主题名,用户在下载文件时不需要修改文件名,给用户带来了极大的便利,此外,由于本发明中对主题名没有任何限制,因此主题名可以包含很丰富的信息,可以给用户带来很好的用户体验。
在图4b所示的实施例中,地址生成单元203包括数字产生单元203a和第二链接单元203b。其中数字产生单元203a用于生成随机数。第二链接单元203b用于利用文件的存储路径和数字产生单元203a得到的随机数生成文件在页面上的链接地址。
数字产生单元203a通过随机算法可以取得随机数,此外,数字产生单元203a还可以获取当前时刻并将当前时刻作为随机数。当前时刻是指从某个时刻以来的秒数,通常是指1970年1月1日以来的秒数,数字产生单元203a通过调用专门的接口函数就可得到当前时刻。
可以看出,如果数字产生单元203a通过获取当前时刻得到随机数,则在任意不相同时刻获取的随机数都是不一样的。如果随机数为“8903834”,主题名为“冰雨”的mp3文件的存储路径为“mp3.baidu.com/123/”,则第二链接单元203b可将该文件在页面上的链接地址确定为“http://mp3.baidu.com/123/8903834.mp3”。如果与前面所说的主题名结合,第二链接单元203b还可将该文件在页面上的链接地址确定为“http://mp3.baidu.com/123/冰雨_8903834.mp3”。
有些网络运营商,会对一些媒体文件进行缓存,以提高在本域内用户下载文件时的速度。当用户向某个音乐服务器请求文件下载时,网络运营商的服务器发现该文件名对应的文件在本服务器中已经存在,就会把这个文件直接返回给用户,而不是把该请求发送到真正请求的音乐服务器处。但是用户针对不同的链接地址请求的同名歌曲,很可能不是真正相同的歌曲,例如歌手侃侃和歌手南风都有一首名为“滴答”的歌曲,当网络运营商服务器上已经缓存了南风版本的“滴答”时,后续有该网络运营商所属域的用户请求某个音乐服务器上属于侃侃版本的“滴答”时,该请求并没有到达最终的音乐服务器,而是被网络运营商拦截,用户得到的返回文件是南风版本的“滴答”。
上述由于网络运营商对媒体文件进行缓存而造成的无法向用户返回正确文件的问题,通过图4b所示的实施例,能够得到很好的解决。因为文件的链接地址中的文件名如果以普通随机数的方式展示,当产生该随机数的范围足够大时同名的概率非常小,如果以当前时刻的随机数的方式展示,则不存在同名的可能。通过当前时刻形成的随机数,地址生成单元203在每个不同时刻生成的网页中,文件的链接地址中显示的文件名都是不同的,这样用户对文件链接地址发送的请求就能够到达真正的服务器处并从该服务器处获取正确的文件返回。
请继续参考图2。存储号确定单元204当获取到用户对文件在页面上的链接地址发送的请求时,根据该请求对应的链接地址确定文件的存储序列号的方式具体包括:从该请求对应的链接地址包含的目录中提取目录名作为文件的存储序列号。
用户点击文件在页面上的链接地址时,与该链接地址相关的请求就会发送到该链接地址指定的服务器,例如链接地址为“http://mp3.baidu.com/123/冰雨mp3”,当用户点击该链接地址后,请求就被发送到域名为“mp3.baidu.com”的服务器。请求对应的链接地址,指的是请求数据中包含的链接地址,该链接地址是基于文件在页面上的链接地址生成的,但是请求对应的链接地址有可能不完全与文件在页面上的链接地址相同。例如域名为“mp3.baidu.com”的服务器接收到的请求对应的链接地址为“http://mp3.baidu.com/123/***.mp3”,其中“***”部分有可能是乱码而不是文件在页面上的链接地址中指定的“冰雨”。从前文的说明可以看出,由于请求对应的链接地址是基于文件在页面上的链接地址得到的,而文件在页面上的链接地址包含的文件存储路径中的目录里有与文件的存储序列号同名的目录,因此,存储号确定单元204只需要将对应的目录名提取出来即可得到文件的存储序列号。
得到文件的存储序列号后,文件返回单元205就可以利用该存储序列号确定向用户返回的文件。在一个实施例中,文件返回单元205利用文件的存储序列号确定返回文件的方式具体包括:使用文件的存储序列号替换请求对应的链接地址中的文件名,并对替换后的请求对应的链接地址进行解析,以得到与存储序列号对应的文件作为返回文件。
在另一个实施例中,文件返回单元205利用文件的存储序列号确定返回文件的方式具体包括:从请求对应的链接地址中提取文件的存储路径,并以文件的存储序列号为名称在文件的存储路径下进行查找,以得到与存储序列号对应的文件作为返回文件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。