CN109088907B - 文件传递方法及其设备 - Google Patents

文件传递方法及其设备 Download PDF

Info

Publication number
CN109088907B
CN109088907B CN201710451002.6A CN201710451002A CN109088907B CN 109088907 B CN109088907 B CN 109088907B CN 201710451002 A CN201710451002 A CN 201710451002A CN 109088907 B CN109088907 B CN 109088907B
Authority
CN
China
Prior art keywords
file
files
transferred
module
transfer request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710451002.6A
Other languages
English (en)
Other versions
CN109088907A (zh
Inventor
王瑞波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710451002.6A priority Critical patent/CN109088907B/zh
Publication of CN109088907A publication Critical patent/CN109088907A/zh
Application granted granted Critical
Publication of CN109088907B publication Critical patent/CN109088907B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本公开提供了一种文件传递方法。该方法包括从用户接收用于请求传递文件的第一文件传递请求,该第一文件传递请求包括要传递的多个文件。该方法还包括针对所述多个文件中的每个文件,将第一文件传递请求拆分为多个第二文件传递请求,以及向一个或多个应用服务器分发所述多个第二文件传递请求,以由所述一个或多个应用服务器分别进行处理。本公开还提供了与该方法相对应的设备和计算机可读存储介质。

Description

文件传递方法及其设备
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种文件压缩方法及其设备。
背景技术
随着互联网的迅速发展,人们可以从互联网上轻松下载各种文件,也可以向互联网上传各种文件。然而,现有的文件上传技术存在着上传效率低下的问题。
因此,需要一种文件传递方式,使得可高效地传递(例如,向互联网传递)各种文件。
发明内容
有鉴于此,本公开提供了一种文件传递方法及其设备。
本公开的一个方面提供了一种用于传递文件的方法。该方法包括:从用户接收用于请求传递文件的第一文件传递请求,该第一文件传递请求包括要传递的多个文件。该方法还包括针对所述多个文件中的每个文件,将第一文件传递请求拆分为多个第二文件传递请求,以及向一个或多个应用服务器分发所述多个第二文件传递请求,以由所述一个或多个应用服务器分别进行处理。
根据本公开的一些实施例,针对所述多个文件中的每个文件将所述第一文件传递请求拆分为多个第二文件传递请求可包括:从所述第一文件传递请求中提取所述要传递的多个文件;以及针对所述多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括所述多个文件中对应的一个文件。
根据本公开的一些实施例,在从所述第一文件传递请求中提取所述要传递的多个文件之后,所述方法还包括根据预定排队算法对提取出的文件进行排队。在此情况下,针对所述多个文件中的每个文件生成对应的第二文件传递请求包括:根据排队顺序,针对所述多个文件中的每个文件生成对应的第二文件传递请求。
本公开的另一个方面提供了一种用于传递文件的设备。该设备包括接收模块、拆分模块和分发模块。接收模块用于从用户接收用于请求传递文件的第一文件传递请求,所述第一文件传递请求包括要传递的多个文件。拆分模块用于针对所述多个文件中的每个文件,将所述第一文件传递请求拆分为多个第二文件传递请求。分发模块用于向一个或多个应用服务器分发所述多个第二文件传递请求,以由所述一个或多个应用服务器分别进行处理。
根据本公开的一些实施例,拆分模块可包括文件提取子模块和传递请求生成子模块。文件提取子模块用于从所述第一文件传递请求中提取所述要传递的多个文件。传递请求生成子模块用于针对所述多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括所述多个文件中对应的一个文件。
根据本公开的一些实施例,拆分模块还可包括排队算法策略子模块。排队算法策略子模块用于在所述文件提取子模块从所述第一文件传递请求中提取所述要传递的多个文件之后,根据预定排队算法对提取出的文件进行排队。在此情况下,传递请求生成子模块还用于:根据排队顺序,针对所述多个文件中的每个文件生成对应的第二文件传递请求。
本公开的另一方面提供了一种用于传递文件的设备。该设备包括存储计算机可执行指令的存储器以及处理器。处理器执行存储器存储的计算机可执行指令,以执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种用于传递文件的方法。该方法包括:接收用于请求传递文件的一个或多个第二文件传递请求,其中,所述一个或多个第二文件传递请求是由从用户接收的包括要传递的多个文件的第一文件传递请求拆分得到的,并分别包括所述多个文件中对应的一个文件。该方法还包括从所述一个或多个第二文件传递请求中获取要传递的文件,向用于存储文件的文件存储设备发送所述要传递的文件;以及向文档转换服务器发送对转换所述要传递的文件进行指示的消息,以指示所述文档转换服务器将所述要传递的文件转换为能够预览的格式。
根据本公开的一些实施例,所述消息是通过异步方式传递的。
根据本公开的一些实施例,向文档转换服务器发送对转换所述要传递的文件进行指示的消息可包括利用线程池来向文档转换服务器发送所述消息。
本公开的另一方面提供了一种用于传递文件的设备,包括接收模块、文件获取模块、文件传递模块和消息传递模块。接收模块用于接收用于请求传递文件的一个或多个第二文件传递请求,其中,所述一个或多个第二文件传递请求是由从用户接收的包括要传递的多个文件的第一文件传递请求拆分得到的,并分别包括所述多个文件中对应的一个文件。文件获取模块用于从所述一个或多个第二文件传递请求中获取要传递的文件。文件传递模块用于向用于存储文件的文件存储设备发送所述要传递的文件。消息传递模块用于向文档转换服务器发送对转换所述要传递的文件进行指示的消息,以指示所述文档转换服务器将所述要传递的文件转换为能够预览的格式。
根据本公开的一些实施例,所述消息是通过异步方式传递的。
根据本公开的一些实施例,消息传递模块还可用于利用线程池来向文档转换服务器发送所述消息。
本公开的另一方面提供了一种用于传递文件的设备。该设备包括存储计算机可执行指令的存储器以及处理器。处理器执行存储器存储的计算机可执行指令,以执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过将从用户接收到包括多个文件的文件传递请求拆分为各自包括一个文件的文件传递请求,使得能够实现高效的文件传递,并因此可以实现高效传递文件的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了现有技术方案的用于上传文件的系统的示意框图;
图2示意性示出了根据本公开的实施例的文件传递方法的示意流程图;
图3示意性示出了根据本公开实施例的用于数据传递的设备的结构示意图;
图4示意性示出了根据本发明实施例的另一文件传递方法的示意流程图;
图5示意性示出了根据本公开实施例的用于传递文件的另一设备的示意性框图;
图6示意性示出了根据本公开实施例的用于传递文件的系统的结构的示意图;
图7示意性示出了根据本公开的实施例的用于文件传递的设备的另一框图;
图8示意性示出了根据本公开的实施例的用于文件传递的另一设备的另一框图;以及
图9示意性示出了根据本公开实施例的可以应用根据图2或图4所示方法的示例性系统架构。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1描述了现有的技术方案的用于上传文件的系统的示意框图。
如图1所示,该系统包括四个部分,分别是客户端、应用服务器、文档转换服务和云存储服务。
在上传文件时,用户的客户端中的浏览器或是数据接口将要上传的文件打包,连同文件传递请求一起发往应用服务器。这里所说的应用服务器更一般地可以是由多个应用服务器组成的应用服务器集群。
应用服务器集群(例如其前端,如web服务器)在接收到文件传递请求之后,将其分发给集群中的任意一个服务器进行处理。需要理解的是,在仅存在一个应用服务器而不是应用服务器集群的情况下,可以没有该分发操作。接收服务器(例如,其具体应用的具体线程,如图1中所示的各个应用的UploadAction线程)为请求上传的文件调用云储存业务接口,通过该接口将文件上传至云端(云储存服务)进行存储,并同时向文档转换服务器中的消息服务(MQ,消息队列)发送上传文件消息。
文档转换服务器的消息监听接口接收消息后,从云存储服务上取回相应文件,利用转换组件将文件转换为适于预览的格式,将文档转换后的结果存到云存储服务上,并等待来自用户的文件预览请求。
云存储服务在接收到通过应用服务器(集群)转发的用户的文件预览请求时,将所存储的已转换文件返回给用户。
本发明发明人在实践上述技术方案时,发现该方案存在着上传效率不高的问题。例如,用户的上传操作由单个服务器上的例如单个应用任务来负责,如果该单个应用发生故障则可能导致整个多文件上传任务失败,需要重新执行针对所有文件的上传任务。
为至少部分地解决上述问题,本公开的实施例提供了一种用于传递文件的方法及其设备。该方法包括从用户接收用于请求传递文件的第一文件传递请求,该第一文件传递请求包括要传递的多个文件。该方法还包括针对该多个文件中的每个文件,将第一文件传递请求拆分为多个第二文件传递请求,以及向一个或多个应用服务器分发该多个第二文件传递请求,以由该一个或多个应用服务器分别进行处理。
图2示意性示出了根据本公开的实施例的文件传递方法的流程图。
如图2所示,该方法包括在操作S210,从用户接收用于请求传递文件的第一文件传递请求,该第一文件传递请求包括要传递的多个文件。
这里的文件可以是任何文件,例如图像文件、pdf文件、office文档、可执行文件等。本公开实施例所述的文件传递方法不限于具体文件的类型。
在操作S220,针对该要传递的多个文件中的每个文件,将第一文件传递请求拆分为多个第二文件传递请求。
在本公开的一些实施例中,上述拆分可包括从第一文件传递请求中提取要传递的多个文件;以及针对该多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括所述多个文件中对应的一个文件。
在本公开的一些实施例中,提取出的文件可被放置在临时文件队列中,以供后续处理(例如排队)。
在本公开的一些实施例中,在从第一文件传递请求中提取要传递的多个文件之后,图2所示的方法还可包括根据预定排队算法对提取出的文件进行排队。在此情况下,针对多个文件中的每个文件生成对应的第二文件传递请求包括:根据排队顺序,针对多个文件中的每个文件生成对应的第二文件传递请求。例如,可对根据排队算法排在队列前方的文件首先生成第二文件传递请求,并首先发送给应用服务器。
通过排队算法的使用,可缩短文件上传和转换的总时间。例如,假设用户打算上传两个文档,一个小文档,一个大文档,小文档上传处理时间为2秒,大文档上传处理时间10秒,小文档转换需15秒,大文档转换需40秒。在先传递大文档的情况下,从文件上传开始10秒后,大文档上传完成,开始上传小文档,且同时(或接近同时,假设不计云存储服务的文件存取时间)开始大文档的转换。然后,在2秒后完成小文档的上传,并在等待大文档转换完成之后进行小文档的转换。在此情况下,针对大小文档,从上传到转换完成所需时间为大文档上传时间+大文档转换文件+小文档转换时间=10+40+15=65秒(在大文档转换期间小文档上传完成,因此其上传时间2秒不计入总时间)。而在先传递小文档的情况下,从文件上传开始2秒后,小文档上传完成,开始上传大文档,且同时(或接近同时,假设不计云存储服务的文件存取时间)开始小文档的转换。然后,在10秒后完成大文档的上传,并等待小文档转换完成之后进行大文档的转换。在此情况下,针对大小文档,所需总时间是小文档上传时间+小文档转换文件+大文档转换时间=2+15+40=57秒(在小文档转换期间大文档上传完成,因此其上传时间10秒不计入总时间)。可见,对要传递和转换的文档进行排队并应用适当的排队算法/策略可缩短文件上传和转换的总时间,有利于提高用户体验。这在网络带宽越来越高且转换时间成为整个处理过程的瓶颈的情况下更具优势。可采用本领域常用的任何排队算法策略及其实现类,例如自定义优先级排队、文件大小进行排队、上传时间进行排队等具体实现类,在此不再赘述。
本公开中所说的大文档和小文档是相对的概念,其与具体应用场景相关。例如,在当前上传网速为10Mbit/s时,几百兆比特大小的文档也可被视为小文档,而在当前上传网速为几kbit/s或甚至更小时,几兆比特大小的文档也可被视为大文档。因此,在此不对大文档和小文档进行定义。
在本公开的一些实施例中,可将已排队的文件放置在分发文件队列中,以供后续处理(例如生成第二文件传递请求并发送)。
拆分成的第二文件传递请求与被拆分的第一文件传递请求可具有相同的形式和/或格式。然而在其他一些实施例中,其也可以具有不同的形式和/或格式,例如具有更适合于应用服务器侧处理的形式和/或格式。这使得可以不要求用户侧或客户端处发送的文件传递请求必须符合具体应用服务器的要求。
在操作S230,向一个或多个应用服务器分发上述多个第二文件传递请求,以由该一个或多个应用服务器分别进行处理。
上述的一个或多个应用服务器可以组成应用服务器集群,也可以是分别的应用服务器。从第一文件传递请求拆分而来的多个第二文件传递请求可通过任何方式发送给各个应用服务器。例如,可将每个第二文件传递请求发送给一个应用服务器,然而在其他一些实施例中,也可将多个第二文件传递请求发送给一个应用服务器。例如,可向各个应用服务器随机发送第二文件传递请求,或可根据各个应用服务器的负荷来发送第二文件传递请求。当然,本领域常用的其他任何分配算法也是可能的,本公开实施例的技术方案不受具体分配算法的限制。
上述的技术方案通过将从用户接收到包括多个文件的文件传递请求拆分为各自包括一个文件的多个文件传递请求,使得能够实现高效的文件传递,并文档上传的成功率。例如,当用于上传某个具体文件的应用或线程失败时,用户仅需针对上传失败的文件进行再次上传,而不需要重新上传所有文件。
下面参考图3,结合具体实施例对用于实现图1所示的方法的设备进行阐述。
图3示意性示出了根据本公开实施例的用于数据传递的设备的结构示意图。接收模块310、拆分模块320和分发模块330。接收模块310用于从用户接收用于请求传递文件的第一文件传递请求,第一文件传递请求包括要传递的多个文件。拆分模块320用于针对该多个文件中的每个文件,将第一文件传递请求拆分为多个第二文件传递请求。分发模块330用于向一个或多个应用服务器分发该多个第二文件传递请求,以由该一个或多个应用服务器分别进行处理。
拆分模块320可包括文件提取子模块321和传递请求生成子模块325。文件提取子模块321用于从第一文件传递请求中提取要传递的多个文件。传递请求生成子模块325用于针对多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括该多个文件中对应的一个文件。
根据本公开的一些实施例,拆分模块320还可包括排队算法策略子模块323。排队算法策略子模块323用于在所述文件提取子模块从所述第一文件传递请求中提取所述要传递的多个文件之后,根据预定排队算法对提取出的文件进行排队。在此情况下,传递请求生成子模块325还用于:根据排队顺序,针对所述多个文件中的每个文件生成对应的第二文件传递请求。
根据本公开的一些实施例,在文件提取子模块321和排队算法策略子模块323之后还可包括其各自对应的文件队列存储器。例如在文件提取子模块321和排队算法策略子模块323之间可存在用于临时存储文件提取子模块321所提取出的文件的临时文件队列存储器322,在排队算法策略子模块323与传递请求生成子模块325之间可存在用于临时存储在排队算法策略子模块323进行了排队之后的文件的分发文件队列存储器324。可采用本领域的任何存储方式来实现此处所述的临时文件队列存储器322和分发文件队列存储器324,本发明不受该具体实现形式的限制。如上所述,排队及排队算法/策略的使用使得可缩短文件上传和转换的总时间,有利于提高用户体验。
图3所示的设备可在服务器或服务器集群的前端实现,例如可在接收用户发送的文件传递请求并分发该文件传递请求的web服务器处实现。当然,网络中其他任何适合的位置也是可能的,本公开实施例不限制其具体位置,只要其在逻辑上例如如图6所示地连接即可。
下面,将参考图4,对在应用服务器处实现的根据本发明实施例的文件传递方法进行描述。
图4示意性地示出了根据本发明实施例的文件传递方法的另一示例的流程图。
如图4所示,该方法包括在操作S410,接收用于请求传递文件的一个或多个第二文件传递请求,其中,该一个或多个第二文件传递请求是由从用户接收的包括要传递的多个文件的第一文件传递请求拆分得到的,并分别包括该多个文件中对应的一个文件。
例如,第二文件传递请求是从根据图3所示的设备接收到的。如上结合图1所示的方法和图3所示的设备所述,第二文件传递请求与第一文件传递请求可具有相同的形式和/或格式。然而在其他一些实施例中,其也可以具有不同的形式和/或格式,例如具有更适合于应用服务器侧处理的形式和/或格式。这使得可以不要求用户侧或客户端处发送的文件传递请求必须符合应用服务器的要求。
此外,接收到的该一个或多个第二文件传递请求可以仅是一个文件传递请求,也可以是多个文件传递请求。在后者的情况下,该一个或多个第二文件传递请求可涉及第一文件传递请求所涉及的部分或全部文件。例如,在应用服务器集群中的其他应用服务器繁忙的情况下,第一文件传递请求所涉及的全部文件以及相应拆分的所有第二文件传递请求也可由同一个应用服务器来处理。
在操作S420,从该一个或多个第二文件传递请求中获取要传递的文件。
在多个文件传递请求的情况下,该操作可获得多个文件。在此情况下,也可以采用排队算法来对所获得的多个文件进行排队,例如,可采用与图3的排队算法策略子模块323相同或不同的排队算法来进行排队。
在操作S430处,向用于存储文件的文件存储设备发送要传递的文件。
用于存储文件的文件存储设备可例如是云存储服务器(如图1和图6所示),也可以是任何可用于存储文件的任何本地或远程服务器、任何分布式服务器或其组合。
在操作S420采用了排队的情况下,可按照排队的顺序来发送来传递的文件。
在操作S440,向文档转换服务器发送对转换要传递的文件进行指示的消息,以指示文档转换服务器将要传递的文件转换为能够预览的格式。
例如,在接收到消息之后,文档转换服务器可从文件存储设备获取要传递的文件,并将其转换为能够预览的格式。
根据本公开的一些实施例,上述消息是通过异步方式传递的。
根据本公开的一些实施例,还可以利用线程池来处理步骤S440中要发送的消息。可采用本领域中的任何线程池技术,且在此不再赘述。通过利用线程池来发送消息,可保护产生该消息的设备(例如应用服务器)的内存。
下面,将参考图5,对实现图4所示方法的设备进行描述。
图5示出了根据本公开实施例的用于传递文件的另一设备的示意性框图。
如图5所示,该设备包括接收模块510、文件获取模块520、文件传递模块530和消息传递模块540。接收模块510用于接收用于请求传递文件的一个或多个第二文件传递请求,其中,该一个或多个第二文件传递请求是由从用户接收的包括要传递的多个文件的第一文件传递请求拆分得到的,并分别包括该多个文件中对应的一个文件。文件获取模块520用于从该一个或多个第二文件传递请求中获取要传递的文件。文件传递模块530用于向用于存储文件的文件存储设备发送要传递的文件。消息传递模块540用于向文档转换服务器发送对转换该要传递的文件进行指示的消息,以指示文档转换服务器将要传递的文件转换为能够预览的格式。
根据本公开的一些实施例,上述消息是通过异步方式传递的。
根据本公开的一些实施例,还可以利用线程池来处理上述要发送的消息。可采用本领域中的任何线程池技术,且在此不再赘述。通过利用线程池来发送消息,可保护产生该消息的设备(例如应用服务器)的内存。
第二文件传递请求例如是从根据图3所示的设备接收到的。如上结合图1所示的方法和图3所示的设备所述,第二文件传递请求与第一文件传递请求可具有相同的形式和/或格式。然而在其他一些实施例中,其也可以具有不同的形式和/或格式,例如具有更适合于应用服务器侧处理的形式和/或格式。这使得可以不要求用户侧或客户端处发送的文件传递请求必须符合应用服务器的要求。
此外,接收到的该一个或多个第二文件传递请求可以仅是一个文件传递请求,也可以是多个文件传递请求。在后者的情况下,该一个或多个第二文件传递请求可涉及第一文件传递请求所涉及的部分或全部文件。
在多个第二文件传递请求的情况下,也可以采用排队算法来对所获得的多个文件进行排队,例如,可采用与图3的排队算法策略子模块323相同或不同的排队算法来进行排队,且图5所示的设备可具有对应的排队算法策略模块。
用于存储文件的文件存储设备可例如是云存储服务器(如图1和图6所示),也可以是任何可用于存储文件的任何本地或远程服务器、任何分布式服务器或其组合。
图6示出了根据本公开实施例的用于传递文件的系统的结构的示意图。
如图6所示,该系统可包括客户端、文件队列分发器、应用服务器集群、文件转换服务、云储存服务。
需要注意的是,上述名称仅是为了易于阐述本公开实施例的技术方案所采用的名称,其他的名称也是可能的。例如,可直接用用户来代表客户端,文件队列分发器可以是能够实现权利要求3所示的设备的任何设备,应用服务器集群可以是由能够实现权利要求5所示的设备的任何设备所组成的集群,以及云储存服务可以是任何可用于存储文件的任何本地或远程服务器、任何分布式服务器或其组合。
下面将参考图6所示的系统来阐述本公开实施例所提供的文件传递方法的整体流程。虽然在下面使用了“上传”一词,需要注意的是,本公开实施例的技术方案可用于任何需要传递文件的场景。
如图6所示,首先,用户可发送请求批量上传多个文件的文件传递请求,以进行批量上传操作。
然后,经由文件队列分发器将用户上传的多个文件进行拆分,拆分出多个文件请求。具体的文件拆分方案可参见图2所示的方法和图3所示的设备。
应用服务器集群(例如其前端)可通过例如负载均衡的方式将每个拆分后的文件请求分发到具体应用服务器(例如,其具体应用的具体线程,如图6中所示的各个应用的UploadAction线程)以将对应的文件上传至云存储服务。在图6所示的方案中,使用消息线程池中的一个线程来发送异步消息给文档转换服务中的消息队列MQ。通过将线程池用于要发送的消息,保护产生该消息的设备(例如应用服务器)的内存。
文档转换服务中的消息监听接口接收消息以后,从云存储服务获取要转换的文件,将文件转换为适于预览的格式,并向云存储服务上传转换后的文件。这里所说的适于浏览的格式可以是本领域中常用的任何预览格式,例如但不限于超文本标记语言(HTML)格式。
当有用户请求预览具体文件时,通过应用服务器集群将与该文件对应的转换后的文件从云存储服务取出,并传递给进行请求的用户来进行预览。
图7示意性示出了根据本公开的实施例的用于文件传递的设备的框图,其对应于图3所示的设备。图7示出的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据该实施例的设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本公开实施例的设备中限定的上述功能。
图8示意性示出了根据本公开的实施例的用于文件传递的设备的框图,其对应于图5所示的设备。图8示出的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据该实施例的设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本公开实施例的设备中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行图2或图4所示的方法。
图9示意性示出了根据本公开实施例的可以应用根据图2或图4所示方法的示例性系统架构1000。
如图9所示,根据该实施例的系统架构1000可以包括终端设备1001、1002、1003,网络1004和服务器1005。网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收或发送消息等。终端设备1001、1002、1003上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1001、1002、1003可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1005可以是提供各种服务的服务器,例如对用户利用终端设备1001、1002、1003所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本公开实施例所提供的网页生成方法一般可以由服务器1005执行,相应地,网页生成装置一般可以设置于服务器1005中。
本公开实施例所提供的图2和图4所示的方法可在终端设备1001、1002、1003和/或服务器1005中的任一者在执行,也可通过网络1004在终端设备1001、1002、1003和/或服务器1005之间传递。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (14)

1.一种用于传递文件的方法,包括:
从用户接收用于请求传递文件的第一文件传递请求,所述第一文件传递请求包括要传递的多个文件;
从所述第一文件传递请求中提取所述要传递的多个文件;
针对所述多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括所述多个文件中对应的一个文件;以及
向多个应用服务器分发所述多个第二文件传递请求,以由所述多个应用服务器分别进行处理,
其中,所述多个第二文件传递请求是针对所述多个文件中的每个文件,按照缩短所述多个文件的上传和转换为能够预览的格式的总时间的顺序生成的。
2.根据权利要求1所述的方法,其中,在从所述第一文件传递请求中提取所述要传递的多个文件之后,所述方法还包括根据预定排队算法对提取出的文件进行排队,
针对所述多个文件中的每个文件生成对应的第二文件传递请求包括:根据排队顺序,针对所述多个文件中的每个文件生成对应的第二文件传递请求。
3.一种用于传递文件的设备,包括:
接收模块,用于从用户接收用于请求传递文件的第一文件传递请求,所述第一文件传递请求包括要传递的多个文件;
拆分模块,用于从所述第一文件传递请求中提取所述要传递的多个文件,且用于针对所述多个文件中的每个文件生成对应的第二文件传递请求,每个第二文件传递请求包括所述多个文件中对应的一个文件;以及
分发模块,用于向多个应用服务器分发所述多个第二文件传递请求,以由所述多个应用服务器分别进行处理,
其中,所述多个第二文件传递请求是针对所述多个文件中的每个文件,按照缩短所述多个文件的上传和转换为能够预览的格式的总时间的顺序生成的。
4.根据权利要求3所述的设备,其中,所述拆分模块包括:
排队算法策略子模块,用于在从所述第一文件传递请求中提取所述要传递的多个文件之后,根据预定排队算法对提取出的文件进行排队,
其中,所述拆分模块还用于:根据排队顺序,针对所述多个文件中的每个文件生成对应的第二文件传递请求。
5.一种用于传递文件的设备,包括:
存储器,存储计算机可执行指令;以及
处理器,执行所述存储器存储的计算机可执行指令,以执行根据权利要求1至2中任一项所述的方法。
6.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1至2中任一项所述的方法。
7.一种用于传递文件的方法,包括:
接收用于请求传递文件的一个或多个第二文件传递请求,其中,所述一个或多个第二文件传递请求是针对从用户接收的第一文件传递请求中包括的要传递的多个文件中对应的一个文件生成的,其中,所述生成是针对所述多个文件中的对应文件,按照缩短所述多个文件的上传和转换为能够预览的格式的总时间的顺序执行的;
从所述一个或多个第二文件传递请求中获取要传递的文件;
向用于存储文件的文件存储设备发送所述要传递的文件;以及
向文档转换服务器发送对转换所述要传递的文件进行指示的消息,以指示所述文档转换服务器将所述要传递的文件转换为能够预览的格式。
8.根据权利要求7所述的方法,其中,所述消息是通过异步方式传递的。
9.根据权利要求7所述的方法,其中,向文档转换服务器发送对转换所述要传递的文件进行指示的消息包括:
利用线程池来向文档转换服务器发送所述消息。
10.一种用于传递文件的设备,包括:
接收模块,用于接收用于请求传递文件的一个或多个第二文件传递请求,其中,所述一个或多个第二文件传递请求是针对从用户接收的第一文件传递请求中包括的要传递的多个文件中对应的一个文件生成的,其中,所述生成是针对所述多个文件中的对应文件,按照缩短所述多个文件的上传和转换为能够预览的格式的总时间的顺序执行成的;
文件获取模块,用于从所述一个或多个第二文件传递请求中获取要传递的文件;
文件传递模块,用于向用于存储文件的文件存储设备发送所述要传递的文件;以及
消息传递模块,用于向文档转换服务器发送对转换所述要传递的文件进行指示的消息,以指示所述文档转换服务器将所述要传递的文件转换为能够预览的格式。
11.根据权利要求10所述的设备,其中,所述消息是通过异步方式传递的。
12.根据权利要求10所述的设备,其中,所述消息传递模块还用于:
利用线程池来向文档转换服务器发送所述消息。
13.一种用于传递文件的设备,包括:
存储器,存储计算机可执行指令;以及
处理器,执行所述存储器存储的计算机可执行指令,以执行根据权利要求7至9中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求7至9中任一项所述的方法。
CN201710451002.6A 2017-06-14 2017-06-14 文件传递方法及其设备 Active CN109088907B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710451002.6A CN109088907B (zh) 2017-06-14 2017-06-14 文件传递方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710451002.6A CN109088907B (zh) 2017-06-14 2017-06-14 文件传递方法及其设备

Publications (2)

Publication Number Publication Date
CN109088907A CN109088907A (zh) 2018-12-25
CN109088907B true CN109088907B (zh) 2021-10-01

Family

ID=64839036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710451002.6A Active CN109088907B (zh) 2017-06-14 2017-06-14 文件传递方法及其设备

Country Status (1)

Country Link
CN (1) CN109088907B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110083524A (zh) * 2019-03-15 2019-08-02 深圳壹账通智能科技有限公司 上传数据测试方法、装置、计算机设备及存储介质
CN111124280A (zh) * 2019-11-29 2020-05-08 浪潮电子信息产业股份有限公司 一种数据追加写入方法、装置及电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714143A (zh) * 2008-10-08 2010-05-26 英业达股份有限公司 映像文件的制作方法与文件系统的排序方法
CN105094716A (zh) * 2015-06-15 2015-11-25 北京皮尔布莱尼软件有限公司 一种文档分拣系统、方法和计算设备
CN105306568A (zh) * 2015-10-23 2016-02-03 无锡天脉聚源传媒科技有限公司 一种基于浏览器续传任务的方法及装置
CN105450633A (zh) * 2015-11-03 2016-03-30 广州视睿电子科技有限公司 一种文档上传方法、系统及解析服务器
CN106302709A (zh) * 2016-08-12 2017-01-04 杭州东信北邮信息技术有限公司 一种网络文件管理的实现方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605148A (zh) * 2009-05-21 2009-12-16 何吴迪 云存储的并行系统的架构方法
CN102833294B (zh) * 2011-06-17 2015-05-20 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
CN102710630B (zh) * 2012-05-29 2016-03-16 新华网股份有限公司 一种多线程分片的云上传下载方法及系统
CN103106068B (zh) * 2013-02-28 2015-03-18 江苏中科物联网科技创业投资有限公司 物联网大数据快速校验方法
CN103544285B (zh) * 2013-10-28 2017-09-26 华为技术有限公司 一种数据加载方法及装置
US9197702B2 (en) * 2013-12-06 2015-11-24 Cellco Partnership System for and method for media upload multithreading for large file uploads
CN104052803A (zh) * 2014-06-09 2014-09-17 国家超级计算深圳中心(深圳云计算中心) 一种去中心化的分布式渲染方法及渲染系统
CN105991737A (zh) * 2015-02-26 2016-10-05 阿里巴巴集团控股有限公司 分布式任务调度方法及系统
CN105162878B (zh) * 2015-09-24 2018-08-31 网宿科技股份有限公司 基于分布式存储的文件分发系统及方法
US10375144B2 (en) * 2015-09-28 2019-08-06 Sony Corporation Uploading over parallel requests
CN105205174B (zh) * 2015-10-14 2019-10-11 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
CN105338424B (zh) * 2015-10-29 2019-10-08 努比亚技术有限公司 一种视频处理方法及系统
CN106657197B (zh) * 2015-11-02 2021-10-15 腾讯科技(深圳)有限公司 文件上传的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714143A (zh) * 2008-10-08 2010-05-26 英业达股份有限公司 映像文件的制作方法与文件系统的排序方法
CN105094716A (zh) * 2015-06-15 2015-11-25 北京皮尔布莱尼软件有限公司 一种文档分拣系统、方法和计算设备
CN105306568A (zh) * 2015-10-23 2016-02-03 无锡天脉聚源传媒科技有限公司 一种基于浏览器续传任务的方法及装置
CN105450633A (zh) * 2015-11-03 2016-03-30 广州视睿电子科技有限公司 一种文档上传方法、系统及解析服务器
CN106302709A (zh) * 2016-08-12 2017-01-04 杭州东信北邮信息技术有限公司 一种网络文件管理的实现方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
百度云可以上传整个文件夹吗?;sanpitt;《百度知道》;20150918;正文第1-2页 *

Also Published As

Publication number Publication date
CN109088907A (zh) 2018-12-25

Similar Documents

Publication Publication Date Title
US11356748B2 (en) Method, apparatus and system for slicing live streaming
CN108958922B (zh) 用于执行任务的方法和装置
WO2017041398A1 (zh) 数据传输方法和装置
CN111478781B (zh) 一种消息广播的方法和装置
CN109218341B (zh) 用于监控服务器和用于服务器的负载均衡方法和装置
CN110572422A (zh) 数据下载方法和装置
CN109088907B (zh) 文件传递方法及其设备
CN109428926B (zh) 一种调度任务节点的方法和装置
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
CN112084042A (zh) 一种消息处理的方法和装置
US20190370293A1 (en) Method and apparatus for processing information
CN111131470B (zh) 终端设备及其数据处理方法以及数据处理系统
CN113742389A (zh) 一种业务处理方法和装置
CN111767176B (zh) 一种远程控制终端设备的方法和装置
CN112149392A (zh) 一种富文本编辑方法和装置
CN112398669A (zh) 一种Hadoop部署方法和装置
US20200236188A1 (en) Facilitating inter-proxy communication via an existing protocol
CN112948138A (zh) 一种处理消息的方法和装置
CN113127561B (zh) 业务单号的生成方法、装置、电子设备和存储介质
CN112688982B (zh) 一种用户请求处理方法和装置
CN107171820B (zh) 信息传输、发送、获取方法和装置
CN110324370B (zh) 服务端向客户端推送数据的方法和装置
CN113760487A (zh) 一种业务处理方法和装置
CN110019445B (zh) 数据同步方法和装置、计算设备和存储介质
CN113626176A (zh) 一种业务请求处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant