CN113852665A - 文件上传方法、装置、电子设备、存储介质及程序产品 - Google Patents
文件上传方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113852665A CN113852665A CN202110968603.0A CN202110968603A CN113852665A CN 113852665 A CN113852665 A CN 113852665A CN 202110968603 A CN202110968603 A CN 202110968603A CN 113852665 A CN113852665 A CN 113852665A
- Authority
- CN
- China
- Prior art keywords
- fragments
- target file
- application server
- file
- uploading
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明属于计算机技术领域,具体涉及一种文件上传方法、装置、电子设备、存储介质及程序产品。本发明旨在解决现有的文件上传方法存在的失败率高、页面跳转时间长的问题。文件上传方法包括:至少两个第一应用服务器接收到来自客户端的目标文件的至少两个分片,各第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,并将分片在缓存服务器中的临时存储地址存储至数据库中;第二应用服务器响应于目标文件分片合并上传请求,从数据库中读取目标文件的至少两个分片的临时存储地址,根据至少两个分片的临时存储地址,从缓存服务器获取至少两个分片,将至少两个分片合并,得到目标文件,并利用安全文件传送协议,向资源服务器发送目标文件。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种文件上传方法、装置、电子设备、存储介质及程序产品。
背景技术
Web应用系统可以通过web为用户提供文件上传功能。用户无需单独额外下载应用程序,通过自己终端的浏览器,即可将文件上传至Web应用系统的资源服务器上。文件存储在资源服务器上之后,资源服务器器会将该文件在资源服务器上的url地址,返回给终端侧。后续,通过该url地址即可下载此文件。
目前,Web应用系统通过如下方式实现文件的上传:先将文件上传至Web应用系统的应用服务器,再由该应用服务器将该文件上传至Web应用系统的资源服务器中进行存储。
然而,上述文件上传方法,存在失败率高、页面跳转时间长等缺点。
发明内容
为了解决现有技术中的上述问题,即为了解决现有技术中的文件上传方法存在的失败率高、页面跳转时间长的问题,本发明提供了一种文件上传方法、装置、电子设备、存储介质及程序产品。
第一方面,本发明提供一种文件上传方法,所述方法包括:客户端接收目标文件的第一上传请求;响应于所述第一上传请求,所述客户端向应用服务器集群发送所述目标文件的至少两个分片;所述客户端接收所述目标文件的第二上传请求;响应于所述第二上传请求,所述客户端向所述应用服务器集群发送所述目标文件分片合并上传请求,所述目标文件分片合并上传请求,用于请求所述应用服务器集群将所述目标文件的至少两个分片合并,并上传至资源服务器;所述资源服务器用于存储所述目标文件。
在上述文件上传方法的优选技术方案中,所述客户端向应用服务器集群发送所述目标文件的至少两个分片,包括:所述客户端利用超文本传输协议,向应用服务器集群发送所述目标文件的至少两个分片。
在上述文件上传方法的优选技术方案中,所述客户端向应用服务器集群发送所述目标文件的至少两个分片之前,还包括:所述客户端基于预设分片的大小,将所述目标文件拆分成至少两个分片;或者,所述客户端根据当前网络信息,将所述目标文件拆分成至少两个分片。
在上述文件上传方法的优选技术方案中,所述客户端向应用服务器集群发送所述目标文件的至少两个分片之后,还包括:所述客户端接收来自所述应用服务器集群返回的第一上传响应;所述第一上传响应用于指示所述至少两个分片已上传至所述应用服务器集群;所述客户端输出所述至少两个分片成功上传的提示信息。
在上述文件上传方法的优选技术方案中,所述客户端向所述应用服务器集群发送所述目标文件分片合并上传请求之后,还包括:所述客户端接收来自所述应用服务器集群返回的第二上传响应;所述第二上传响应用于指示所述目标文件已上传至资源服务器;所述客户端输出所述目标文件成功上传的提示信息。
第二方面,本发明提供一种文件上传方法,所述方法应用于应用服务器集群,所述应用服务器集群包括M个应用服务器,所述M为大于或等于2的整数;所述方法包括:所述应用服务器集群的至少两个第一应用服务器接收到来自客户端的目标文件的至少两个分片;不同第一应用服务器接收到的分片不同;各所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中;所述应用服务器集群的第二应用服务器接收来自所述客户端的所述目标文件分片合并上传请求;响应于所述目标文件分片合并上传请求,所述第二应用服务器从所述数据库中读取所述目标文件的至少两个分片的临时存储地址;所述第二应用服务器根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片;所述第二应用服务器将所述至少两个分片合并,得到所述目标文件;所述第二应用服务器利用安全文件传送协议,向所述资源服务器发送所述目标文件。
在上述文件上传方法的优选技术方案中,所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,包括:所述第一应用服务器利用超文本传输协议,将接收到的分片存储至缓存服务器的临时目录下。
在上述文件上传方法的优选技术方案中,所述第二应用服务器根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片,包括:所述第二应用服务器利用超文本传输协议,根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片。
在上述文件上传方法的优选技术方案中,各所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中之后,还包括:所述应用服务器集群的第三应用服务器向所述客户端发送第一上传响应;所述第一上传响应用于指示所述至少两个分片已上传至所述应用服务器集群;所述第三应用服务器为所述至少两个第一应用服务器中最后一个接收到分片的应用服务器。
在上述文件上传方法的优选技术方案中,所述第二应用服务器利用安全文件传送协议,向所述资源服务器发送所述目标文件之后,还包括:所述第二应用服务器向所述客户端发送第二上传响应;所述第二上传响应用于指示所述目标文件已上传至资源服务器。
第三方面,本发明提供一种文件上传装置,所述装置包括:第一接收模块,用于接收目标文件的第一上传请求;第一发送模块,用于响应所述第一上传请求,向应用服务器集群发送所述目标文件的至少两个分片;第二接收模块,用于接收所述目标文件的第二上传请求;第二发送模块,用于响应所述第二上传请求,向所述应用服务器集群发送所述目标文件分片合并上传请求,所述目标文件分片合并上传请求,用于请求所述应用服务器集群将所述目标文件的至少两个分片合并,并上传至资源服务器;所述资源服务器用于存储所述目标文件。
第四方面,本发明提供一种文件上传装置,应用服务器集群包括M个应用服务器,所述装置应用于所述M个应用服务器中的第一应用服务器,所述M为大于或等于2的整数;所述装置包括:接收模块,用于接收来自客户端的目标文件的分片;存储模块,用于将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中。
第五方面,本发明提供一种文件上传装置,应用服务器集群包括M个应用服务器,所述装置应用于所述M个应用服务器中的第二应用服务器,所述M为大于或等于2的整数;所述装置包括:接收模块,用于接收来自所述客户端的所述目标文件分片合并上传请求;读取模块,用于响应所述目标文件分片合并上传请求,从所述数据库中读取所述目标文件的至少两个分片的临时存储地址;获取模块,用于根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片;合并模块,用于将所述至少两个分片合并,得到所述目标文件;发送模块,用于利用安全文件传送协议,向所述资源服务器发送所述目标文件。
第六方面,本发明提供一种电子设备,所述电子设备包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第一方面中任一项所述的方法。
第七方面,本发明提供一种电子设备,所述电子设备包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第二方面中任一项所述的方法。
第八方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面中任一项所述的方法。
第九方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第二方面中任一项所述的方法
第十方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
第十一方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第二方面中任一项所述的方法。
本发明提供的文件上传方法、装置、电子设备、存储介质及程序产品,通过设置缓存服务器和数据库,使得目标文件的至少两个分片得以通过应用服务器集群临时存储在缓存服务器中,而各分片在缓存服务器中的临时存储地址得以存储在数据库中,从而,使得应用服务器集群能够利用数据库中各分片的临时存储地址,从缓存服务器中再次获取到目标文件的所有分片,并将各分片合并得到目标文件,最终将该目标文件存储至资源服务器中,进而,实现了将目标文件的分片通过应用服务器集群存储至资源服务器中。本发明提供的文件上传方法将目标文件拆分为分片进行存储,即使应用服务器集群中某个应用服务器出现故障,其他分片也能够成功上传,减小了文件上传的失败率。此外,该方法在客户端将用户请求拆分为文件分片上传和分片合并上传两个请求,缩短了单个请求界面的跳转时间。
附图说明
下面参照附图来描述本发明的文件上传方法、装置、电子设备、存储介质及程序产品的优选实施方式。附图为:
图1是现有技术提供的一种文件上传方法应用的Web应用系统的架构示意图;
图2是本发明实施例提供的一种文件上传方法应用的Web应用系统的架构示意图;
图3是本发明实施例提供的一种文件上传方法的流程示意图。
图4是本发明实施例提供的第一种文件上传终端界面示意图;
图5是本发明实施例提供的第二种文件上传终端界面示意图;
图6是本发明实施例提供的第三种文件上传终端界面示意图;
图7是本发明实施例提供的第四种文件上传终端界面示意图;
图8是本发明实施例提供的一种文件上传方法的具体示例流程示意图;
图9是本发明实施例提供的一种文件上传装置的结构示意图;
图10是本发明实施例提供的另一种文件上传装置的结构示意图;
图11是本发明实施例提供的又一种文件上传装置的结构示意图;
图12是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
首先,本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。本领域技术人员可以根据需要对其作出调整,以便适应具体的应用场合。
图1是现有技术提供的一种文件上传方法应用的Web应用系统的架构示意图。如图1所示,该Web应用系统包括:客户端、分布式部署的应用服务器集群和资源服务器。
其中,客户端用于为用户提供访问Web应用系统的浏览器页面。用户通过该浏览器页面可以触发文件上传。此处所说的客户端又可以称为终端设备、用户设备(userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,例如可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑等具有浏览器的设备。
应用服务器集群,通常部署有多个应用服务器,每个应用服务器均可以提供文件上传的应用服务,用于为前端提供服务的接口,实现文件上传。此处所说的应用服务器集群可以包括M个应用服务器,其中,M为大于或等于2的整数。
资源服务器,用于存储上传的文件。
目前,当客户端有目标文件要上传时,客户端会向应用服务器集群发起目标文件上传请求,并利用超文本传输协议(Hyper Text Transfer Protocol,HTTP)将目标文件发送给应用服务器集群中的其中一个应用服务器。
该应用服务器接收到目标文件后,通过HTTP将目标文件发送给资源服务器。资源服务器在接收到该目标文件后,会将该目标文件在该资源服务器中的url地址,通过该应用服务器返回给客户端。
该url地址可以是能够通过公网访问url。使用该url地址,可以通过浏览器从该Web应用系统下载此文件。
虽然上述Web应用系统可以通过配置参数,调整允许上传的最大文件大小,但是,现有的文件上传是需要通过两个串行过程才能实现(即文件从客户端上传至应用服务器、再从应用服务器上传至资源服务器),因此,随着文件的增大,客户端的页面响应时间会成倍增大,导致客户端页面跳转时间增长,易出现界面卡死,用户操作体验差的情况。
另外,当待上传的文件超过允许上传的最大文件大小时,会出现文件上传失败的情况。
考虑到上述问题,以及,Web应用系统中采用分布式部署的应用服务器集群的特性,本发明提供了一种文件上传方法,通过文件分片上传和临时存储,降低了文件上传的失败率。此外,本发明提供的文件上传方法,将客户端页面请求进行拆分,缩短了单个页面的跳转时间。
本发明提供的文件上传方法,可以适用于图2所示的Web应用系统架构示意图。图2是本发明实施例提供的一种文件上传方法应用的分布式Web应用系统的架构示意图,如图2所示,该Web应用系统包括:客户端、分布式部署的应用服务器集群、数据库、资源服务器、缓存服务器。
在本实施例中,文件上传包括两个阶段:
第一阶段:客户端将目标文件的多个分片上传至应用服务器集群。应用服务器集中至少两个第一应用服务器可以接收来自客户端的目标文件的不同分片,并将接收到的分片上传缓存服务器进行缓存,并将各分片的存储地址写入数据库中。
通过将文件分片上传到缓存服务器临时位置,而不是应用服务器本地磁盘,解决了分布式应用服务器集群如何存储分片文件问题,同时文件分片大小相比文件而言都比较小,例如,都是Kb级别的,因此,文件分片上传过程速度很快,不会卡顿,页面响应快,用户体验不会受影响。另外,分片存储在缓存服务器的临时目录,分片的访问地址存放在数据库里,供后续单节点合并完整文件做准备。
第二阶段:客户端通过应用服务器集群的第二应用服务器,基于数据库中各分片的存储地址,从缓存服务器中读取到各分片之后,将各分片进行组合得到目标文件后,通过安全文件传送协议,发送给资源服务器。
采用安全文件传送协议传输目标文件的方式,文件大小不受限制。因此,相比于图1所示的现有的通过http的传输方式上传文件,在应用服务器与资源服务器之间也不会出现页面响应慢,文件超过配置参数导致无法上传的问题。
综上,本申请通过上述上传的两个阶段,可以通过系统方式解决大文件在分布式环境下上传到资源服务器的问题。需要说明的是,本申请提供的方案包括但不限于前述所说的分布式Web应用系统,也可以适用于部署单应用服务器的Web应用系统等。
应理解,缓存服务器可以是独立于资源服务器存在的、具有存储功能的服务器,缓存服务器也可以与资源服务器为同一服务器,图2是以缓存服务器与资源服务器为同一服务器进行的示例性说明。当缓存服务器独立于资源服务器存在的时,上述缓存服务器例如可以是部署有轻量级分布式文件系统(Fast Distributed File System,Fastdfs)的存储服务器等。
此外,前述第一应用服务器和第二应用服务器所实现的功能也可以是由该应用服务器集群中的同一个应用服务器单独实现的,也可以是多个应用服务器,本发明对此不作限制。
数据库可以是关系型数据库,例如可以为Oracle或MySQL数据库。此处所说的数据库可以是部署在某一服务器上的数据库,也可以是单独存在的数据库,本发明对此不进行限定。
资源服务器可以是集成了资源存储功能的服务器,其中,资源例如可以是图片、音频、视频等文件。
下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图3是本发明实施例提供的一种文件上传方法的流程示意图。如图3所示,本发明该方法可以包括:
S101,客户端接收目标文件的第一上传请求。
图4是本发明实施例提供的第一种文件上传终端界面示意图。参照图4,以文件1作为用户选择的待上传为例,用户可以通过勾选,确定文件1为目标文件。示例性地,用户可以通过点击界面中的“分片上传”按钮,向客户端发出第一上传请求。
其中,第一上传请求用于指示客户端将目标文件切分为至少两个文件分片,并将该目标文件的所有文件分片发送给客户端应用程序的应用服务器集群。
S102,响应于第一上传请求,客户端向应用服务器集群发送目标文件的至少两个分片。
相应地,应用服务器集群的至少两个第一应用服务器接收到来自客户端的目标文件的至少两个分片。其中,不同第一应用服务器接收到的分片不同,同一个第一服务器可能接收到两个或者多于两个分片。
示例性地,接收到分片的第一应用服务器的数量,以及各第一应用服务器接收到的分片数量,可以是随机确定的。或者,当应用服务器集群具有负载均衡服务器时,该负载均衡服务器可以根据预设的负载均衡策略,确定出接收到分片的第一应用服务器的数量,以及各第一应用服务器接收到的分片数量。其中,预设的负载均衡策略例如可以包括:轮询法、随机法、源地址哈希法等策略。
示例性地,客户端接收到用户的第一上传请求后,可以将目标文件分为至少两个文件分片。示例性地,客户端可以通过以下几种实现方式,对目标文件进行分片处理。
作为第一种可能的实现方式,客户端可以随机地确定目标文件的分片数量M(M为大于或等于2的整数),在确定出该数量后,平均地将目标文件切分为M个文件分片。
作为第二种可能的实现方式,客户端可以基于用户指示,将用户指示的数值作为分片数量M,然后将目标文件切分为M个文件分片。
示例性地,该用户指示的数值可以是用户预先统一进行设置的,客户端每次都是用该数值作为分片数量M对目标文件进行文件分片处理。或者,用户也可以在每次进行目标文件的分片处理前,都进行一次数值输入。本发明对此不作限制。
作为第三种可能的实现方式,客户端可以基于预设分片的大小,将目标文件拆分成至少两个分片。
例如,当预设分片的大小为100千字节(Kilobyte,kB)、目标文件的大小为1000kB时,客户端可以将该目标文件切分为10个文件分片。
作为第四种可能的实现方式,客户端还可以根据当前网络信息,将目标文件拆分成至少两个分片。
示例性地,客户端可以基于当前网络信息,确定当前的网速,从而可以确定与当前网速匹配的分片大小,从而避免传输分片时出现卡顿或传输失败等问题。
示例性地,各个文件分片的标识中均带有相同的文件标识、各自的分片编号、以及分片总数。例如,当客户端将文件1切分为两个文件分片时,该两个文件分片的标识可以分别为“文件1-分片1-共2个分片”和“文件1-分片2-共2个分片”。
示例性地,客户端完成上述目标文件的分片后,可以利用HTTP,向应用服务器集群发送该目标文件的至少两个分片。
示例性地,当应用服务器集群完成目标文件的至少两个分片的接收任务后,应用服务器集群可以向客户端返回第一上传响应。其中,第一上传响应用于指示目标文件的至少两个分片已成功上传至应用服务器集群。
示例性地,至少两个第一应用服务器中最后一个接收到分片的应用服务器可以称为第三应用服务器,上述第一上传响应可以由该第三应用服务器发送给客户端。
例如,当应用服务器集群中的某一个第一应用服务器所接收到的文件分片中带有最后一个分片的标识时,该第一应用服务器即为第三应用服务器。例如,当文件分片的标识中带有目标文件的分片总数和该文件分片的分片编号时,若某一个第一应用服务器接收到标识中的分片编号等于目标文件的分片总数的文件分片时,该第一应用服务器即为第三应用服务器。该第三应用服务器可以确定完成目标文件的至少两个分片的接收任务,并向客户端发送第一上传响应。
或者,第三应用服务器可以将自己对应分片完成上传后的信息同步给第一个接收到分片的应用服务器,由其将第一上传响应返回给客户端。
示例性地,客户端收到上述第一上传指令后,可以输出至少两个分片成功上传的提示信息。示例性地,此时的客户端界面可以参照图5。
S103,各第一应用服务器将接收到的分片存储至缓存服务器的临时目录下。
S104,各第一应用服务器将分片在缓存服务器中的临时存储地址存储至数据库中。
示例性地,各第一应用服务器接收到客户端发送的文件分片后,可以将各文件分片发送给缓存服务器,缓存服务器每接收到一个文件分片,就会将该文件分片的标识、该文件分片在该缓存服务器中的临时存储地址返回给发送该文件分片的第一应用服务器。接收到分片在缓存服务器中的临时存储地址的第一应用服务器,可以将收到的临时存储地址发送到数据库中进行存储。
其中,缓存服务器是指可以提供文件资源临时存储功能的服务器。示例性地,该缓存服务器可以是资源服务器,或者其他存储服务器。当该缓存服务器为资源服务器时,各第一应用服务器可以将接收到的分片存储至资源服务器的临时目录下。
示例性地,第一应用服务器可以利用HTTP,将接收到的分片存储至资源服务器(以资源服务器作为缓存服务器为例)的临时目录下。由于分片相对于文件而言通常比较小,因此采用HTTP将分片存储至资源服务器,不会因为文件过大出现传输失败的情况。
S105,客户端接收目标文件的第二上传请求。
图6是本发明实施例提供的第三种文件上传终端界面示意图。参照图6,用户可以通过点击界面中的“分片合并”按钮,向客户端发出第二上传请求。
其中,第二上传请求用于指示客户端向应用服务器集群发送目标文件分片合并上传请求。
S106,响应于第二上传请求,客户端向应用服务器集群发送目标文件分片合并上传请求。
相应地,应用服务器集群的第二应用服务器接收来自客户端的目标文件分片合并上传请求。
其中,目标文件分片合并上传请求,用于请求应用服务器集群将目标文件的至少两个分片合并,并将合并得到的目标文件上传至资源服务器中进行存储。
S107,响应于目标文件分片合并上传请求,第二应用服务器从数据库中读取目标文件的至少两个分片的临时存储地址。
示例性地,第二应用服务器可以根据目标文件的标识,从数据库中读取出带有该标识的至少两个分片的临时存储地址。
或者,第二应用服务器可以将目标文件的标识发送给数据库,数据库可以根据目标文件的标识,将带有该标识的至少两个分片的临时存储地址发送给该第二应用服务器。
S108,第二应用服务器根据至少两个分片的临时存储地址,从缓存服务器获取至少两个分片。
示例性地,第二应用服务器可以根据至少两个分片的临时存储地址,利用HTTP,从缓存服务器的临时目录中下载得到目标文件的至少两个分片。
S109,第二应用服务器将至少两个分片合并,得到目标文件。
示例性地,第二应用服务器可以根据文件分片所带有的标识中的分片编号,按顺序将至少两个分片合并,得到目标文件。
S110,第二应用服务器利用安全文件传送协议,向资源服务器发送目标文件。
示例性地,资源服务器上可以配置有安全文件传输协议(Secure File TransferProtocol,SFTP)服务端,以使第二应用服务器可以利用SFTP向资源服务器发送目标文件。由于采用sftp方式上传,不会有文件大小的限制。因此,通过该方式,可以使文件上传到资源服务器后立刻返回,客户端的页面不会阻塞。
示例性地,当资源服务器接收到目标文件后,可以将该目标文件在该资源服务器中的存储地址发送给该第二应用服务器。示例性地,第二应用服务器在接收到该目标文件的存储地址后,可以向客户端发送第二上传响应。其中,该第二上传响应用于指示该目标文件已成功上传至资源服务器。
相应地,客户端在接收到该第二上传响应后,可以输出目标文件成功上传的提示信息。示例性地,此时的客户端界面可以参照图7。
本发明提供的文件上传方法,通过设置缓存服务器和数据库,使得目标文件的至少两个分片得以通过应用服务器集群临时存储在缓存服务器中,而各分片在缓存服务器中的临时存储地址得以存储在数据库中,从而,使得应用服务器集群能够利用数据库中各分片的临时存储地址,从缓存服务器中再次获取到目标文件的所有分片,并将各分片合并得到目标文件,最终将该目标文件存储至资源服务器中,进而,实现了将目标文件的分片通过应用服务器集群存储至资源服务器中。本发明提供的文件上传方法将目标文件拆分为分片进行存储,即使应用服务器集群中某个应用服务器出现故障,其他分片也能够成功上传,减小了文件上传的失败率。此外,该方法在客户端将用户请求拆分为文件分片上传和分片合并上传两个请求,缩短了单个请求界面的跳转时间。
下面通过具体的示例,来对上述文件方法进行示例说明。
图8是本发明实施例提供的一种文件上传方法的具体示例流程示意图。该具体示例是以目标文件被分为两个分片(分片1和分片2)、应用服务器集群包括2个应用服务器(应用服务器A和应用服务器B)、资源服务器为缓存服务器为例进行的示例性说明。示例性地,应用服务器A和应用服务器B为第一应用服务器,应用服务器C为第二应用服务器。
如图8所示,本发明实施例提供的文件上传方法具体示例可以包括:
S201,客户端接收目标文件的第一上传请求。
S202,响应于第一上传请求,客户端向应用服务器集群发送目标文件的两个分片。
相应地,应用服务器集群的应用服务器A和应用服务器B接收到来自客户端的目标文件的至少两个分片。
S203,应用服务器A和应用服务器B分别将接收到的分片存储至缓存服务器的临时目录下,并将两个分片在缓存服务器中的临时存储地址存储至数据库中。
S204,客户端接收目标文件的第二上传请求。
S205,响应于第二上传请求,客户端向应用服务器集群发送目标文件分片合并上传请求。
相应地,应用服务器集群的应用服务器A接收来自客户端的目标文件分片合并上传请求。
S206,响应于目标文件分片合并上传请求,应用服务器A从数据库中读取目标文件的两个分片的临时存储地址。
S207,应用服务器A根据两个分片的临时存储地址,从缓存服务器获取该两个分片。
S208,应用服务器A将两个分片合并,得到目标文件。
S209,应用服务器A利用安全文件传送协议,向资源服务器发送目标文件。
本发明提供的具体示例的实现原理与技术效果与前述文件上传方法实施例的实现原理与技术效果类似,对此不再赘述。
图9是本发明实施例提供的一种文件上传装置的结构示意图。如图9所示,该装置包括:第一接收模块21、第一发送模块22、第二接收模块23和第二发送模块24。示例性地,该文件上传装置还可以包括:拆分模块25、和/或输出模块26。其中:
第一接收模块21,用于接收目标文件的第一上传请求;
第一发送模块22,用于响应第一上传请求,向应用服务器集群发送目标文件的至少两个分片;
第二接收模块23,用于接收目标文件的第二上传请求;
第二发送模块24,用于响应第二上传请求,向应用服务器集群发送目标文件分片合并上传请求,目标文件分片合并上传请求,用于请求应用服务器集群将目标文件的至少两个分片合并,并上传至资源服务器;资源服务器用于存储目标文件。
可选地,第一发送模块22,利用超文本传输协议,向应用服务器集群发送目标文件的至少两个分片。
可选地,拆分模块25,用于基于预设分片的大小,将目标文件拆分成至少两个分片;或者,根据当前网络信息,将目标文件拆分成至少两个分片。
可选地,第二接收模块23,还用于在第一发送模块22向应用服务器集群发送目标文件的至少两个分片之后,接收来自应用服务器集群返回的第一上传响应;第一上传响应用于指示至少两个分片已上传至应用服务器集群。输出模块26,用于输出至少两个分片成功上传的提示信息。
可选地,第二接收模块23,还用于在第二发送模块24向应用服务器集群发送目标文件分片合并上传请求之后,接收来自应用服务器集群返回的第二上传响应;第二上传响应用于指示目标文件已上传至资源服务器。输出模块26,用于输出目标文件成功上传的提示信息。
本发明提供的文件上传装置,用于执行前述文件上传方法实施例中客户端的步骤,其实现原理与技术效果类似,对此不再赘述。
图10是本发明实施例提供的另一种文件上传装置的结构示意图。应用服务器集群包括M个应用服务器,装置应用于M个应用服务器中的第一应用服务器,M为大于或等于2的整数。如图10所示,该装置包括:接收模块31、存储模块32。可选地,该装置还可以包括发送模块33。其中,
接收模块31,用于接收来自客户端的目标文件的分片;
存储模块32,用于将接收到的分片存储至缓存服务器的临时目录下,并将分片在缓存服务器中的临时存储地址存储至数据库中。
可选地,存储模块32,具体用于利用超文本传输协议,将接收到的分片存储至缓存服务器的临时目录下。
可选地,发送模块33,用于在存储模块32将接收到的分片存储至缓存服务器的临时目录下,并将分片在缓存服务器中的临时存储地址存储至数据库中之后,向客户端发送上传响应;上传响应用于指示至少两个分片已上传至应用服务器集群。
本发明提供的文件上传装置,用于执行前述文件上传方法实施例中第一应用服务器的步骤,其实现原理与技术效果类似,对此不再赘述。
图11是本发明实施例提供的又一种文件上传装置的结构示意图。应用服务器集群包括M个应用服务器,装置应用于M个应用服务器中的第二应用服务器,M为大于或等于2的整数。如图11所示,该装置包括:接收模块41、读取模块42、获取模块43、合并模块44和发送模块45。其中:
接收模块41,用于接收来自客户端的目标文件分片合并上传请求;
读取模块42,用于响应目标文件分片合并上传请求,从数据库中读取目标文件的至少两个分片的临时存储地址;
获取模块43,用于根据至少两个分片的临时存储地址,从缓存服务器获取至少两个分片;
合并模块44,用于将至少两个分片合并,得到目标文件;
发送模块45,用于利用安全文件传送协议,向资源服务器发送目标文件。
可选地,获取模块43,具体用于利用超文本传输协议,根据至少两个分片的临时存储地址,从缓存服务器获取至少两个分片。
可选地,发送模块45,还用于在利用安全文件传送协议,向资源服务器发送目标文件之后,向客户端发送第二上传响应;第二上传响应用于指示目标文件已上传至资源服务器。
本发明提供的文件上传装置,用于执行前述文件上传方法实施例中第二应用服务器的步骤,其实现原理与技术效果类似,对此不再赘述。
图12是本发明实施例提供的一种电子设备的结构示意图。如图12所示,该电子设备400可以包括:至少一个处理器401和存储器402。
存储器402,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器402可能包含高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器401用于执行存储器402存储的计算机执行指令,以实现前述方法实施例所描述的文件上传方法。示例性地,该电子设备例如可以是前述实施例中的客户端、应用服务器、缓存服务器或资源服务器。其中,处理器401可能是一个中央处理器(CentralProcessing Unit,CPU),或者是特定集成电路(Application Specific IntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选地,该电子设备400还可以包括通信接口403。在具体实现上,如果通信接口403、存储器402和处理器401独立实现,则通信接口403、存储器402和处理器401可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选地,在具体实现上,如果通信接口403、存储器402和处理器401集成在一块芯片上实现,则通信接口403、存储器402和处理器401可以通过内部接口完成通信。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、RAM存储器、磁盘或者光盘等各种可以存储程序代码的介质,具体地,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的文件上传方法。
本发明还提供一种Web应用系统,该Web应用系统可以包括前述实施例中的客户端、应用服务器集群、缓存服务器、数据库和资源服务器。该Web应用系统可以实施上述的各种实施方式提供的文件上传方法,对此不再赘述。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
Claims (16)
1.一种文件上传方法,其特征在于,所述方法包括:
客户端接收目标文件的第一上传请求;
响应于所述第一上传请求,所述客户端向应用服务器集群发送所述目标文件的至少两个分片;
所述客户端接收所述目标文件的第二上传请求;
响应于所述第二上传请求,所述客户端向所述应用服务器集群发送所述目标文件分片合并上传请求,所述目标文件分片合并上传请求,用于请求所述应用服务器集群将所述目标文件的至少两个分片合并,并上传至资源服务器;所述资源服务器用于存储所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述客户端向应用服务器集群发送所述目标文件的至少两个分片,包括:
所述客户端利用超文本传输协议,向应用服务器集群发送所述目标文件的至少两个分片。
3.根据权利要求1或2所述的方法,其特征在于,所述客户端向应用服务器集群发送所述目标文件的至少两个分片之前,还包括:
所述客户端基于预设分片的大小,将所述目标文件拆分成至少两个分片;
或者,所述客户端根据当前网络信息,将所述目标文件拆分成至少两个分片。
4.根据权利要求1或2所述的方法,其特征在于,所述客户端向应用服务器集群发送所述目标文件的至少两个分片之后,还包括:
所述客户端接收来自所述应用服务器集群返回的第一上传响应;所述第一上传响应用于指示所述至少两个分片已上传至所述应用服务器集群;
所述客户端输出所述至少两个分片成功上传的提示信息。
5.根据权利要求4所述的方法,其特征在于,所述客户端向所述应用服务器集群发送所述目标文件分片合并上传请求之后,还包括:
所述客户端接收来自所述应用服务器集群返回的第二上传响应;所述第二上传响应用于指示所述目标文件已上传至资源服务器;
所述客户端输出所述目标文件成功上传的提示信息。
6.一种文件上传方法,其特征在于,所述方法应用于应用服务器集群,所述应用服务器集群包括M个应用服务器,所述M为大于或等于2的整数;所述方法包括:
所述应用服务器集群的至少两个第一应用服务器接收到来自客户端的目标文件的至少两个分片;不同第一应用服务器接收到的分片不同;
各所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中;
所述应用服务器集群的第二应用服务器接收来自所述客户端的所述目标文件分片合并上传请求;
响应于所述目标文件分片合并上传请求,所述第二应用服务器从所述数据库中读取所述目标文件的至少两个分片的临时存储地址;
所述第二应用服务器根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片;
所述第二应用服务器将所述至少两个分片合并,得到所述目标文件;
所述第二应用服务器利用安全文件传送协议,向资源服务器发送所述目标文件。
7.根据权利要求6所述的方法,其特征在于,所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,包括:
所述第一应用服务器利用超文本传输协议,将接收到的分片存储至缓存服务器的临时目录下。
8.根据权利要求6或7所述的方法,其特征在于,所述第二应用服务器根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片,包括:
所述第二应用服务器利用超文本传输协议,根据所述至少两个分片的临时存储地址,从所述缓存服务器获取所述至少两个分片。
9.根据权利要求6或7所述的方法,其特征在于,各所述第一应用服务器将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中之后,还包括:
所述应用服务器集群的第三应用服务器向所述客户端发送第一上传响应;所述第一上传响应用于指示所述至少两个分片已上传至所述应用服务器集群;所述第三应用服务器为所述至少两个第一应用服务器中最后一个接收到分片的应用服务器。
10.根据权利要求6或7所述的方法,其特征在于,所述第二应用服务器利用安全文件传送协议,向所述资源服务器发送所述目标文件之后,还包括:
所述第二应用服务器向所述客户端发送第二上传响应;所述第二上传响应用于指示所述目标文件已上传至资源服务器。
11.一种文件上传装置,其特征在于,所述装置包括:
第一接收模块,用于接收目标文件的第一上传请求;
第一发送模块,用于响应所述第一上传请求,向应用服务器集群发送所述目标文件的至少两个分片;
第二接收模块,用于接收所述目标文件的第二上传请求;
第二发送模块,用于响应所述第二上传请求,向所述应用服务器集群发送所述目标文件分片合并上传请求,所述目标文件分片合并上传请求,用于请求所述应用服务器集群将所述目标文件的至少两个分片合并,并上传至资源服务器;所述资源服务器用于存储所述目标文件。
12.一种文件上传装置,其特征在于,应用服务器集群包括M个应用服务器,所述装置应用于所述M个应用服务器中的第一应用服务器,所述M为大于或等于2的整数;所述装置包括:
接收模块,用于接收来自客户端的目标文件的分片;
存储模块,用于将接收到的分片存储至缓存服务器的临时目录下,并将分片在所述缓存服务器中的临时存储地址存储至数据库中。
13.一种文件上传装置,其特征在于,应用服务器集群包括M个应用服务器,所述装置应用于所述M个应用服务器中的第二应用服务器,所述M为大于或等于2的整数;所述装置包括:
接收模块,用于接收来自客户端的目标文件分片合并上传请求;
读取模块,用于响应所述目标文件分片合并上传请求,从数据库中读取所述目标文件的至少两个分片的临时存储地址;
获取模块,用于根据所述至少两个分片的临时存储地址,从缓存服务器获取所述至少两个分片;
合并模块,用于将所述至少两个分片合并,得到所述目标文件;
发送模块,用于利用安全文件传送协议,向资源服务器发送所述目标文件。
14.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1-5中任一项,或,权利要求6-10中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现权利要求1-5中任一项,或,权利要求6-10中任一项所述的方法。
16.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一项,或,权利要求6-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110968603.0A CN113852665A (zh) | 2021-08-23 | 2021-08-23 | 文件上传方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110968603.0A CN113852665A (zh) | 2021-08-23 | 2021-08-23 | 文件上传方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113852665A true CN113852665A (zh) | 2021-12-28 |
Family
ID=78975949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110968603.0A Pending CN113852665A (zh) | 2021-08-23 | 2021-08-23 | 文件上传方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852665A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150388A (zh) * | 2022-06-24 | 2022-10-04 | 中国建设银行股份有限公司 | 文件上传和文件上传状态查询方法及其设备、存储介质 |
CN115840541A (zh) * | 2023-02-23 | 2023-03-24 | 成都体育学院 | 一种运动数据存储方法、系统和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
CN109831506A (zh) * | 2019-01-31 | 2019-05-31 | 百度在线网络技术(北京)有限公司 | 文件上传方法、装置、终端、服务器及可读存储介质 |
CN110493350A (zh) * | 2019-08-27 | 2019-11-22 | 北京百度网讯科技有限公司 | 文件上传方法和装置、电子设备和计算机可读介质 |
-
2021
- 2021-08-23 CN CN202110968603.0A patent/CN113852665A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
CN109831506A (zh) * | 2019-01-31 | 2019-05-31 | 百度在线网络技术(北京)有限公司 | 文件上传方法、装置、终端、服务器及可读存储介质 |
CN110493350A (zh) * | 2019-08-27 | 2019-11-22 | 北京百度网讯科技有限公司 | 文件上传方法和装置、电子设备和计算机可读介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150388A (zh) * | 2022-06-24 | 2022-10-04 | 中国建设银行股份有限公司 | 文件上传和文件上传状态查询方法及其设备、存储介质 |
CN115150388B (zh) * | 2022-06-24 | 2024-04-26 | 中国建设银行股份有限公司 | 文件上传和文件上传状态查询方法及其设备、存储介质 |
CN115840541A (zh) * | 2023-02-23 | 2023-03-24 | 成都体育学院 | 一种运动数据存储方法、系统和介质 |
CN115840541B (zh) * | 2023-02-23 | 2023-06-13 | 成都体育学院 | 一种运动数据存储方法、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933871B (zh) | 短链接处理方法、装置及短链接服务器 | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
WO2015081808A1 (en) | Method and apparatus for data transmission | |
US9792623B2 (en) | Advertisement processing method and apparatus | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
CN113852665A (zh) | 文件上传方法、装置、电子设备、存储介质及程序产品 | |
CN109729386B (zh) | 一种视频文件启播方法、系统及电子设备和存储介质 | |
CN106534268B (zh) | 一种数据共享方法及装置 | |
US20170126556A1 (en) | Information transmission method and apparatus, device and storage medium | |
CN110572451B (zh) | 一种数据处理的方法、装置及存储介质 | |
WO2017097106A1 (zh) | 一种文件差量的传输方法以及装置 | |
CN113411404A (zh) | 一种文件下载方法、装置、服务器及存储介质 | |
CN110764688B (zh) | 对数据进行处理的方法和装置 | |
US10938773B2 (en) | Method and apparatus for synchronizing contact information and medium | |
CN113535226B (zh) | 应用下载方法、终端、服务器、计算机设备以及存储介质 | |
CN112905542A (zh) | 一种文件处理方法、装置、服务器、设备及存储介质 | |
CN110392083B (zh) | 文件秒传的控制方法、装置及终端设备 | |
WO2013144425A1 (en) | Download control | |
CN107528875B (zh) | 文件的下载方法和装置 | |
CN109889608B (zh) | 一种动态资源加载方法、装置、电子设备及存储介质 | |
CN110474954B (zh) | 基于区块链的文件分享方法、装置、计算机设备及可读存储介质 | |
CN109088913B (zh) | 请求数据的方法和负载均衡服务器 | |
CN103379157A (zh) | 用于进行信息传输的方法、装置、设备和系统 | |
CN111245949A (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 |