CN111131450A - 文件上传方法、重组方法及装置 - Google Patents

文件上传方法、重组方法及装置 Download PDF

Info

Publication number
CN111131450A
CN111131450A CN201911342700.8A CN201911342700A CN111131450A CN 111131450 A CN111131450 A CN 111131450A CN 201911342700 A CN201911342700 A CN 201911342700A CN 111131450 A CN111131450 A CN 111131450A
Authority
CN
China
Prior art keywords
file
fragment
cloud server
uploading
cloud
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.)
Granted
Application number
CN201911342700.8A
Other languages
English (en)
Other versions
CN111131450B (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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201911342700.8A priority Critical patent/CN111131450B/zh
Publication of CN111131450A publication Critical patent/CN111131450A/zh
Application granted granted Critical
Publication of CN111131450B publication Critical patent/CN111131450B/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (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

文件上传方法、重组方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及文件上传方法、重组方法、及装置。
背景技术
随着互联网技术的快速发展,用户的需求越来越多,不仅局限于浏览网络信息,用户还需要通过客户端将自己的信息上传到网络以分享给其他用户。
为了实现客户端能够向云服务器上传文件,目前通行的做法是先向业务服务器发送文件上传请求,业务服务器根据客户端的地址信息、地理位置、运营商等信息选择一个云服务器,客户端将需要上传的文件上传到该云服务器。
然而,随着第五代移动通信技术(5G,5th generation mobile networks)网络的普及、宽带速率的提高、以及无线保真(Wi-Fi,Wireless Fidelity)技术的普及,未来的客户端可用带宽很高,而云服务器为单个客户端分配的带宽小于客户端可用带宽,从而不能充分利用客户端可用带宽、影响到文件传输速度。因此,在高速网络下如何提高客户端上传文件时的带宽利用率,提高文件上传速度、降低文件上传所需时间亟待解决。
发明内容
本发明实施例的目的在于提供一种文件上传方法、重组方法及装置,以实现在高速网络下如何提高客户端上传文件时的带宽利用率,提高文件上传速度、降低文件上传所需时间。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种文件上传方法,执行于客户端,包括:
向业务服务器发送文件上传请求;
接收所述业务服务器发送的与每个云服务器各自对应的对象信息;其中,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,所述对象标识为所述业务服务器响应于所述文件上传请求为每个所述云服务器分配的;
对目标文件进行分片,获得分片文件,并为所述分片文件分配分片标识;
针对每个所述云服务器,通过所述云服务器对应的上传渠道向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,其中,一个所述对象标识对应一个所述上传渠道,所述云服务器的个数为一个时,向所述云服务器并行发送的分片文件为多个;所述云服务器的个数为多个时,向所述云服务器并行发送的分片文件为至少一个。
在本发明实施的第二方面,还提供了一种文件重组方法,执行于业务服务器,包括:
接收客户端发送的文件上传请求;
响应于所述文件上传请求,为每个云服务器分配与每个所述云服务器对应的对象标识;
向所述客户端发送与每个所述云服务器各自对应的对象信息,以使所述客户端对目标文件进行分片,获得分片文件,并向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,向所述云服务器并行发送的分片文件为多个;或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,向所述云服务器并行发送的分片文件为至少一个;
接收所述客户端发送的文件上传完成通知消息;其中,所述文件上传完成通知消息包括所述客户端向每个所述云服务器上传的所述分片文件的分片标识和分片大小;
响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件;
根据所述文件上传完成通知消息,对从每个所述云服务器获取的分片文件进行重组,以获得所述目标文件。
在本发明实施的第三方面,还提供了一种文件上传方法,执行于云服务器,包括:
接收客户端发送的至少一个分片文件和所述云服务器对应的对象信息,所述分片文件为所述客户端对目标文件进行分片获得的;
存储所述分片文件、以及所述分片文件与所述对象信息包括的对象标识的关联关系;
向业务服务器发送存储的与所述对象标识关联的所述分片文件。
在本发明实施的第四方面,还提供了一种文件上传装置,设置于客户端,包括:
第一发送模块,用于向业务服务器发送文件上传请求;
接收模块,用于接收所述业务服务器发送的与每个云服务器各自对应的对象信息;其中,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,所述对象标识为所述业务服务器响应于所述文件上传请求为每个所述云服务器分配的;
分片模块,用于对目标文件进行分片,获得分片文件,并为所述分片文件分配分片标识;
第二发送模块,用于针对每个所述云服务器,通过所述云服务器对应的上传渠道向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,其中,一个所述对象标识对应一个所述上传渠道,所述云服务器的个数为一个时,向所述云服务器并行发送的分片文件为多个;所述云服务器的个数为多个时,向所述云服务器并行发送的分片文件为至少一个。
在本发明实施的第五方面,还提供了一种文件重组装置,设置于业务服务器,包括:
第一接收模块,用于接收客户端发送的文件上传请求;
第一获取模块,用于响应于所述文件上传请求,为每个云服务器分配与每个所述云服务器对应的对象标识;
发送模块,用于向所述客户端发送与每个所述云服务器各自对应的对象信息,以使所述客户端对目标文件进行分片,获得分片文件,并向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,向所述云服务器并行发送的分片文件为多个;或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,向所述云服务器并行发送的分片文件为至少一个;
第二接收模块,用于接收所述客户端发送的文件上传完成通知消息;其中,所述文件上传完成通知消息包括所述客户端向每个所述云服务器上传的所述分片文件的分片标识和分片大小;
第二获取模块,用于响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件;
重组模块,用于根据所述文件上传完成通知消息,对从每个所述云服务器获取的分片文件进行重组,以获得所述目标文件。
在本发明实施的第六方面,还提供了一种文件上传装置,设置于云服务器,包括:
接收模块,用于接收客户端发送的至少一个分片文件和所述云服务器对应的对象信息,所述分片文件为所述客户端对目标文件进行分片获得的;
存储模块,用于存储所述分片文件、以及所述分片文件与所述对象信息包括的对象标识的关联关系;
发送模块,用于向业务服务器发送存储的与所述对象标识关联的所述分片文件。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的文件上传方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的文件上传方法。
本发明实施例提供的文件上传方法,通过向业务服务器发送文件上传请求,接收业务服务器发送的与每个云服务器各自对应的对象信息,对目标文件进行分片,获得分片文件,并为分片文件分配分片标识,针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识,一个对象标识对应一个上传渠道,云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。由于对目标文件进行了分片,并且采用多个上传渠道并行向云服务器发送分片文件,可以向一个云服务器并行发送多个分片文件,或者向多个云服务器中的每个云服务器并行发送至少一个分片文件。因此相对于现有技术中,客户端最大只能以云服务器的限速向云服务器上传目标文件而言,本发明实施例提供的文件上传方法,如果在云服务器的个数为一个时,如果该云服务器对应的对象标识为两个,则可以通过两个上传渠道并行发送两个分片文件(一个上传渠道传输一个分片文件),则上传分片文件速度的总和可以达到现有技术的两倍;在云服务器的个数为两个时,如果每个云服务器对应两个上传渠道,则上传分片文件速度的总和可以达到现有技术的四倍,因此,在一定程度上充分利用了客户端的带宽,提高了客户端上传文件的速度,降低了上传整个目标文件所需时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的一种文件上传方法的系统架构图;
图2为本发明实施例中提供的一种文件上传方法的步骤流程图;
图3为本发明实施例中提供的一种文件上传方法的信令流程图;
图4为本发明实施例中提供的一种分片文件上传流程示意图;
图5为本发明实施例中提供的一种文件上传装置的结构示意图;
图6为本发明实施例中提供的一种文件重组装置的结构示意图;
图7为本发明实施例中提供的另一种文件上传装置的结构示意图;
图8为本发明实施例中提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
参照图1,图1为本发明实施例中提供的一种文件上传方法的系统架构图,该系统包括客户端、业务服务器、以及至少一个云服务器,图1中以多个云服务器包括云服务器1、云服务器2和云服务器3为例进行说明。客户端向业务服务器发送文件上传请求后,业务服务器响应于文件上传请求,为云服务器1 分配云服务器1对应的对象信息1、为云服务器2分配云服务器2对应的对象信息2、以及为云服务器3分配云服务器3对应的对象信息3,业务服务器并向客户端发送每个云服务器各自对应的对象信息。
需要说明的是,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识。在此以云服务器为3个、且每个云服务器对应的对象信息包括一个对象标识为例,由于客户端接收到业务服务器发送的每个云服务器各自对应的对象信息后,可以对目标文件进行分片,获得分片文件,并向每个所述云服务器并行发送至少一个分片文件,每个分片文件包括所述分片文件和所述服务器对应的对象信息包括的对象标识,每个分片文件包括的分片文件互不相同,所述云服务器的个数为一个时,向所述云服务器并发送的分片文件为多个,从而实现向一个云服务器同时并行发送多个分片文件,即多个分片文件并行传输给所述云服务器。所述云服务器的个数为多个时,向每个所述云服务器同时并行发送的分片文件为至少一个,即多个分片文件可以并行传输给多个云服务器。因此,在客户端可用带宽很高,而云服务器为单个客户端分配的带宽小于客户端可用带宽的情况下,可以充分利用客户端可用带宽,提高分片文件传输速度,降低传输目标文件所需时间。
例如,目标文件分片后获得6个分片文件(分片文件1、分片文件2、分片文件3、分片文件4、分片文件5和分片文件6),当共有3个云服务器时,每个对象信息包括一个对象标识的情况下,可以视为每个云服务器对应一个上传渠道(云服务器1对应上传渠道A、云服务器2对应上传渠道B、云服务器3对应上传渠道C),则3个云服务器共对应3个上传渠道。客户端接收到业务服务器发送的与云服务器1对应的对象信息A(对象信息A包括对象标识A)、与云服务器2对应的对象信息B(对象信息B包括对象标识B)、以及与云服务器3对应的对象信息C(对象信息C包括对象标识C),客户端则可并行将包括对象标识A和分片文件1的分片文件1发送给云服务器1、包括对象标识 B和分片文件2的分片文件2发送给云服务器2、包括对象标识C和分片文件 3的分片文件3发送给云服务器3。
如果云服务器的个数为1个,例如为云服务器1的情况下,云服务器1对单个对象标识对应的对象(即传输的文件)进行限速,例如限速为2Mbps,而通过本实施例提供的方法,当云服务器1对应的对象信息1中包括多个对象标识(对象标识11、对象标识12和对象标识13,则可以将每个对象标识对应一个上传渠道,也即云服务器1对应3个上传渠道),则客户端可以通过3个上传渠道向云服务器1并行发送多个分片文件,且每个上传渠道的最大速度可以达到2兆比特每秒(Mbps,Million bits per second),则客户端向云服务器1 上传文件的速度最大可以达到6Mbps。例如,客户端将包括分片文件1和对象标识11的分片文件1、包括分片文件2和对象标识12分片文件2、包括分片文件3和对象标识13的分片文件3并行发送给云服务器1时,最大速度达到6Mbps,从而可以在云服务器的对单个对象进行限速的情况下,提高文件传输速度。
现有技术中,由于受到网络通信条件的影响,客户端(尤其是移动网络下的移动终端上部署的客户端)向服务器上传文件时,文件上传速度受到客户端网络限制,即文件上传的传输瓶颈在客户端。而随着5G网络以及Wi-Fi6技术的普及,文件上传的传输瓶颈不在客户端,而可能受制于云服务器的限速,也即文件上传的传输瓶颈在云服务器。
为了解决文件上传的传输瓶颈在云服务器的问题,提高文件上传速度,本发明实施例通过客户端将目标文件进行分片,获得分片文件,通过所述云服务器的个数为一个时,向所述云服务器并行发送的分片文件为多个;所述云服务器的个数为多个时,向所述云服务器并行发送的分片文件为至少一个。从而可以在客户端可用带宽较高,而云服务器为单个客户端分配的带宽小于客户端可用带宽的情况下,提高文件上传速度,降低文件上传所需时间。
为了详细介绍本发明实施例,基于图1并结合图2对本发明实施例进行详细介绍。图2为本发明实施例中提供的一种文件上传方法的步骤流程图。该方法包括如下步骤:
步骤201、客户端向业务服务器发送文件上传请求。
业务服务器响应于文件上传请求,可以为配置信息中包括的各个云服务器分配对应的对象信息,例如配置信息中包括百度云文件服务器(云服务器1)、阿里云文件服务器(云服务器2)、以及金山云文件服务器(云服务器3),则业务服务器可以为云服务器1分配对应的对象信息1、为云服务器2分配对应的对象信息2、以及为云服务器3分配对应的对象信息3,并向客户端发送每个云服务器各自对应的对象信息。相应的,执行步骤202,即客户端接收业务服务器发送的与每个云服务器各自对应的对象信息。
步骤202、接收业务服务器发送的与每个云服务器各自对应的对象信息。
其中,云服务器的个数为一个时,对象信息包括多个对象标识,或者,云服务器的个数为多个时,对象信息包括至少一个对象标识,对象标识为业务服务器响应于文件上传请求为每个云服务器分配的。例如,如果配置信息中只包括云服务器1,可以为云服务器1分配对象标识1和对象标识2。
步骤203、对目标文件进行分片,获得分片文件,并为分片文件分配分片标识。
可以按照预设切分单元大小对目标文件进行分片,获得分片文件。例如目标文件大小为11M,预设切分单元大小为2M,则对目标文件进行分片后,可以获得5个2M的分片文件、以及1个1M的分片文件,并且为每个分片文件分配分片标识,例如第一次分片后,获得的分片文件1对应分片标识1、第二次分片后获得的分片文件2对应分片标识2,以此类推。
由于在云服务器设置限速的情况下,如果客户端可用带宽较大,例如为 100Mbps,而云服务器限速为2Mbps的情况下,如果目标文件为100M,通过现有技术中提供的方案,则最大仅能以2Mbps的速度上传目标文件,最少需要50 秒才能上传完这个文件。而本实施例提供的文件上传方法,由于客户端对目标文件进行分片,获得了分片文件,如果按照预设切分单元大小对目标文件进行分片,获得分片文件,获得的每个分片文件大小为2M。获得分片文件后,仍以3个云服务器、每个云服务器对应一个上传渠道为例,则在步骤204中可以向云服务器1、云服务器2以及云服务器3并行发送3个分片文件,也即同时传输的分片文件的速度提升到6Mbps,以便较快的传输目标文件。
或者根据云服务器的上传性能指标,对目标文件进行分片,获得与云服务器的上传性能指标相匹配的分片文件。每个云服务器的上传性能指标与网络链路质量(例如比特率、丢包率)、失败重试策略(上传失败了隔多长时间重试、以及重试多少次)、云服务器在没有接收到分片文件的情况下该云服务器的等待时间等有关系,可以通过测试确定云服务器的上传性能指标。如果确定某个云服务器的上传性能指标较优,则在上传性能指标较优的情况下,可以为该云服务器分配较大的分片文件。例如云服务器1的上传性能指标低于云服务器2的上传性能指标,云服务器2的上传性能指标低于云服务器3的上传性能指标,在网络质量较好的情况下,通过云服务器1对应的上传渠道传输的分片文件可以为1M大小的分片文件,该1M大小的分片文件即为与云服务器1的上传性能指标相匹配的分片文件,通过云服务器2对应的上传渠道传输的分片文件可以为2M 大小的分片文件,该2M大小的分片文件即为与云服务器2的上传性能指标相匹配的分片文件,同样通过云服务器3对应的上传渠道传输的分片文件可以为3M 大小的分片文件,3M大小的分片文件即为与云服务器3的上传性能指标相匹配的分片文件。即在上传性能指标较优的情况下,针对上传性能指标较优的云服务器,则可以为该云服务器分配较大的分片文件,从而可以进一步提高分片文件的上传速度。如果云服务器1上传完一个分片文件后,到客户端取分片文件,客户端可以为云服务器1再分配一个1M的分片文件,云服务器2上传完一个分片文件后,到客户端取分片文件,客户端可以为云服务器2再分配一个2M的分片文件,从而可以保证客户端向每个云服务器上传文件所需的时间的差异较小或者相同,避免为文件上传性能指标较优的云服务器分配的分片文件较小,导致不能充分利用云服务器提供的资源,而为文件上传性能指标较差的云服务器分配较大的分片文件,导致分片文件上传所需时间较长的问题。也就是说,如果某个云服务器的上传性能指标较优,则可以为该云服务器分配较大的分片文件,从而使上传速度优于较小的分片文件。
步骤204、针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识。
其中,一个对象标识对应一个上传渠道,云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。
例如,参照下表1,此处的对象信息为对象标识。表1中示出了云服务器、向云服务器发送的分片文件之间的关系。例如共有6个分片文件(分片文件1、分片文件2、分片文件3、分片文件4、分片文件5和分片文件6)。并行向云服务器1发送分片文件1、对象标识1和分片文件1的分片标识1、向云服务器2发送分片文件2、对象标识2和分片文件2的分片标识2、以及向云服务器3发送分片文件3、对象标识3和分片文件3的分片标识3。如果云服务器1先完成分片文件1、对象标识1和分片文件1的分片标识1的上传,则云服务器1可以向客户端取分片文件,接着取到分片文件4、对象标识1和分片文件4的分片标识4,也即客户端向云服务器1发送分片文件4、对象标识1和分片文件4的分片标识4;云服务器1 如果又先于云服务器2和云服务器3完成上传,则客户端又向云服务器1发送分片文件5、对象标识1和分片文件5的分片标识5;云服务器3完成分片文件3的上传后,客户端向云服务器3发送分片文件6、对象标识3和分片文件6的分片标识 6。由于对象标识1对应一个上传渠道1、对象标识2对应一个上传渠道2、对象标识3对应一个上传渠道3,因此可以采用三个上传渠道向每个云服务器上传分片文件,从而可以提高分片文件的上传速度。
Figure RE-GDA0002434386980000111
表1
本实施例提供的文件上传方法,通过向业务服务器发送文件上传请求,接收业务服务器发送的与每个云服务器各自对应的对象信息,对目标文件进行分片,获得分片文件,并为分片文件分配分片标识,针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识,一个对象标识对应一个上传渠道,云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。从而可以在客户端可用带宽较高,而云服务器为单个客户端分配的带宽小于客户端可用带宽的情况下,提高文件上传速度,降低文件上传所需时间。
参照图3,图3为本发明实施例中提供的一种文件上传方法的信令流程图。本实施例中以云服务器的个数为3个为例。图3中示出的云服务器可以视为包括云服务器1、云服务器2和云服务器3的服务器,该方法包括如下步骤:
步骤301、客户端向业务服务器发送文件上传请求。
相应的,业务服务器接收客户端发送的文件上传请求。文件上传请求中可以包括目标文件的大小,业务服务器可以根据目标文件的大小,确定是否向客户端发送与每个云服务器各自对应的对象信息。或者客户端判断目标文件的大小是否大于或等于预设阈值,如果目标文件的大小大于预设阈值,则向业务服务器发送的文件上传请求中可以包括多渠道上传策略标识,多渠道上传策略标识用于指示业务服务器为每个云服务器分配与每个云服务器对应的对象标识,从而能够执行步骤303。
如果客户端判断目标文件的大小小于预设阈值,则客户端向业务服务器发送的文件上传请求中可以不包括多渠道上传策略标识,从而使业务服务器只需为一个云服务器分配一个对象标识即可,即客户端只采用一个渠道上传目标文件,从而在目标文件较小的情况下,不采用多渠道上传,因此可以减轻业务服务器和云服务器的压力。
步骤302、业务服务器响应于文件上传请求,为每个云服务器分配与每个云服务器对应的对象标识。
业务服务器响应于文件上传请求,与多个云服务器建立通信连接,并为每个云服务器分配对应的对象标识。
步骤303、业务服务器向客户端发送与每个云服务器各自对应的对象信息。
其中,云服务器的个数为一个时,对象信息包括多个对象标识,向云服务器并行发送的分片文件为多个;或者,云服务器的个数为多个时,对象信息包括至少一个对象标识,向云服务器并行发送的分片文件为至少一个。
当业务服务器响应于文件上传请求,与多个云服务器建立通信连接,业务服务器为每个云服务器分配的对象标识可以为一个或者多个。当业务服务器响应于文件上传请求,与一个云服务器建立通信连接,则业务服务器为该云服务器分配的对象标识为多个。当业务服务器为某个云服务器分配多个对象标识时,客户端可以同时向该业务服务器发送多个分片文件,因此可以做到同时向云服务器上传多个分片文件,从而提高文件上传速度。也即分配的每个对象标识可以视为一个上传渠道,如果分配有3个对象标识,相当于3个上传渠道并行传输3个分片文件到同一个云服务器。
其中,云服务器的个数为多个时,对象信息包括至少一个对象标识。对象信息还可以包括令牌,令牌与对象信息包括的对象标识对应。业务服务器接收到云服务器发送的对象标识后,可以生成一个令牌,生成的令牌与云服务器发送的对象标识对应,并将对象信息(对象信息包括生成的令牌以及该令牌对应的对象标识)发送给客户端,这样客户端向云服务器上传分片文件时,可以将对象标识和与对象标识对应的令牌发送给云服务器,云服务器根据令牌判断客户端是否具有上传分片文件的权限。从而可以使只具备上传分片文件权限的客户端向云服务器上传分片文件,避免不具备上传分片文件权限的客户端向云服务器上传分片文件。
步骤304、在目标文件的大小大于或等于预设阈值的情况下,客户端接收业务服务器发送的与每个云服务器各自对应的对象信息。
步骤305、客户端对目标文件进行分片,获得分片文件,并为分片文件分配分片标识。
需要说明的是,在目标文件的大小小于预设阈值的情况下,也可以对目标文件进行分片,获得分片文件。此种情况下,业务服务器只需为一个云服务器分配一个对象标识即可,即客户端只采用一个渠道上传目标文件,从而在目标文件较小的情况下,不采用多渠道上传,因此可以减轻业务服务器和云服务器的压力,该方案实现更简单,并且在目标文件比较小的情况下,采用一个上传渠道上传比采用多渠道上传的速度可能更快。
步骤306、客户端针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识。
其中,云服务器的个数为一个时,向云服务器同时发送的分片文件为多个;云服务器的个数为多个时,向每个云服务同时发送的分片文件为至少一个。例如,以图3中的云服务器包括云服务器1、云服务器2和云服务器3,向每个云服务器发送一个分片文件为例,并行向云服务器1发送的分片文件1、向云服务器2发送的分片文件2和向云服务器3发送的分片文件3,也即分片文件 1、分片文件2和分片文件3可以同时上传到各个分片文件对应的云服务器,从而在客户端可用带宽大于云服务器限速的情况下,向各个云服务器上传文件的速度的总和可以是现有技术的3倍,从而可以充分利用客户端的带宽,提高分片文件的上传速度,降低目标文件上传云服务器所需时间。
当在步骤303中,如果业务服务器向客户端发送的对象信息包括令牌,则客户端向云服务器发送的分片文件中可以携带该令牌。也即客户端向每个云服务器发送分片文件、服务器对应的对象标识、以及对象标识对应的令牌以及分片文件的分片标识。需要说明的是,由于客户端向云服务器发送了分片文件的分片标识,因此,云服务器接收到分片文件后,可以根据分片文件的分片标识对多个分片文件进行重组。例如,客户端第一次向云服务器1发送了分片文件1 和分片文件的分片标识1、第二次向云服务器1发送了分片文件2和分片文件2的分片标识2,然而如果某种原因导致云服务器1后收到了分片文件2,如果客户端未向云服务器1发送分片文件的分片标识,则会导致云服务器1误将分片文件 2作为文件的头部,导致重组错误。
例如参照表1,表1中示出了客户端向云服务器1、云服务器2、以及云服务器3发送的分片文件。同时为了更清楚介绍客户端向云服务器并行发送分片文件的过程,在此结合图4进行举例说明。参照图4,图4为本发明实施例中提供的一种分片文件上传流程示意图。在此仍以目标文件为11M大小的文件为例,按照预设切分单元大小(2M)对目标文件进行分片,如果业务服务器生成的与对象标识1对应的令牌为令牌1、与对象标识2对应的令牌为令牌2、与对象标识3对应的令牌为令牌3。则分片文件1、对象标识1、令牌1、分片文件1的分片标识1通过云服务器1对应的上传渠道A上传到云服务器1,分片文件2、对象标识2、令牌2、分片文件2的分片标识2通过云服务器2对应的上传渠道B上传到云服务器2,分片文件3、对象标识3、令牌3、分片文件3的分片标识3通过云服务器3对应的上传渠道C上传到云服务器3。分片文件4、对象标识1、令牌1、分片文件4的分片标识4通过上传渠道A上传到云服务器1,分片文件5、对象标识1、令牌1、分片文件5的分片标识5通过上传渠道A上传到云服务器1,以及分片文件6、对象标识3、令牌3、分片文件6的分片标识6通过上传渠道C上传到云服务器3。需要说明的是,鉴于篇幅限制,图中仅示出了各个分片文件的上传过程。
相应的,云服务器接收客户端发送的分片文件、对象标识、令牌、分片文件的分片标识。云服务器可以根据接收的令牌判断客户端是否具有上传分片文件的权限,在客户端具有上传分片文件的权限的情况下,执行步骤306。例如,云服务器1根据分片文件1中包括的令牌1判断客户端是否具备上传分片文件1 的权限。云服务器1可以根据对象信息1中包括的对象标识计算出一个令牌,如果计算出的令牌与客户端发送的令牌一致,则可以确定客户端具有上传分片文件的权限。
步骤307、云服务器存储分片文件、以及分片文件与对象标识的关联关系。
云服务器存储分片文件、以及分片文件与对象标识的关联关系可以通过如下步骤实现:
在客户端具有上传分片文件的权限的情况下,存储分片文件、以及分片文件与对象标识的关联关系。
例如,如图4所示,云服务器1存储分片文件1、分片文件4、分片文件5。云服务器2存储了分片文件2,云服务器3存储了分片文件3和分片文件6。并且,分片文件1、分片文件4、分片文件5都与对象标识1关联,分片文件2 与对象标识2关联,分片文件3和分片文件6都与对象标识3关联。云服务器存储分片文件、以及与分片文件与对象标识的关联关系,用于在步骤309中,业务服务器可以从每个云服务器获取与对象标识关联的分片文件。由于云服务器1存储了分片文件1与对象标识1的关联关系、分片文件4与对象标识1的关联关系、以及分片文件5与对象标识1的关联关系。因此,在步骤309中,业务服务器可以从云服务器1获取到与对象标识1关联的分片文件1、分片文件4和分片文件5。
需要说明的是,云服务器可以对接收到的分片文件进行拼接,以生成子文件。例如云服务器1先接收到分片文件1后,存储分片文件1,接收到分片文件4后,将分片文件4拼接在分片文件1的末尾生成一个子文件,接收到分片文件5后,将分片文件5拼接在该子文件的末尾生成一个最终的子文件。云服务器可以按照接收到的分片文件的分片标识的大小,将最小的分片标识对应的分片文件作为子文件的头部,将最小的分片标识相邻的分片标识对应的分片文件拼接在最小的分片标识对应的分片文件的末尾,依次类推。最小的分片标识相邻的分片标识为接收到的所有的分片标识中除最小的分片标识外的分片标识中的最小的标识。如果拼接为子文件,分片文件中包括的分片文件与分片文件包括的对象标识的关联也即则该子文件与对象标识1关联。
步骤308、客户端向业务服务器发送文件上传完成通知消息;其中,文件上传完成通知消息包括客户端向云服务器上传的分片文件的分片标识和分片大小。
客户端将所有分片文件上传完成后,向业务服务器发送上传完成通知消息,以将客户端向云服务器1上传的分片文件的分片标识和分片大小通知业务服务器、向云服务器2上传的分片文件的分片标识和分片大小通知业务服务器、以及向云服务器3上传的分片标识和分片大小通知业务服务器。例如目标分片文件为11M,按照预设切分单元大小对目标文件进行分片,分片文件1至分片文件5的分片大小分别为2M,分片文件6的分片大小为1M,分片文件1的分片标识为分片标识1、分片文件2的分片标识为分片标识2,以此类推。客户端将向云服务器1上传的分片标识1和分片文件1的分片大小为2M、分片标识4和分片文件4的分片大小为2M、以及分片标识5和分片文件5的分片大小为2M通知业务服务器。
相应的,业务服务器获取到客户端向云服务器1上传的分片文件的分片标识以及分片文件的分片大小。同样,业务服务器可以获取到客户端向云服务器 2上传的分片文件2的分片标识2以及分片文件2的分片大小,以及业务服务器获取到客户端向云服务器3上传的分片文件3的分片标识3以及分片文件3的分片大小、以及分片文件4的分片标识4以及分片文件4的分片大小。
步骤309、业务服务器响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的分片文件,并根据文件上传完成通知消息,对从每个云服务器获取的分片文件进行重组,以获得目标文件。
其中,业务服务器响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的分片文件可以通过如下方式获得:
响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的子文件,并根据文件上传完成通知消息,对从云服务器获取的子文件进行分片,以获得向每个云服务器上传的分片文件;其中,子文件为云服务器将客户端上传到云服务器的分片文件拼接获得的文件。
当云服务器1对分片文件1、分片文件4和分片文件5拼接为子文件的情况下,业务服务器需要根据文件上传完成通知消息中包括的向云服务器1上传的分片标识1和分片文件1的分片大小为2M、分片标识4和分片文件4的分片大小为2M、以及分片标识5和分片文件5的分片大小为2M对客户端上传到云服务器1的分片文件拼接获得的子文件(该子文件与云服务器1分配的对象标识关联)进行切分。由于业务服务器确定了分片文件的分片大小以及向云服务器1上传的分片文件的分片标识,从子文件的头部开始切分,切分出的第一个2M的文件即为分片文件1,对剩余的子文件再次切分出一个2M的文件即为分片文件4,剩下的文件即为分片文件5。同样业务服务器可以将从云服务器3获取的子文件进行切分,获得2M大小的分片文件3、以及1M大小的分片文件6。再将每个分片文件按照顺序(即从分片文件1一直拼接到分片文件6)进行重组即可获得目标文件。
本实施例提供的文件上传方法,通过客户端向业务服务器发送文件上传请求,接收业务服务器发送的与每个云服务器各自对应的对象信息,对目标文件进行分片,获得分片文件,并为分片文件分配分片标识,向每个云服务器并行发送至少一个分片文件,当云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。从而可以在客户端可用带宽较高,而云服务器为单个客户端分配的带宽小于客户端可用带宽的情况下,提高文件上传速度,降低文件上传所需时间。并且云服务器可以根据接收的令牌判断客户端是否具有上传分片文件的权限,在客户端具有上传分片文件的权限的情况下,才存储分片文件,从而可以避免不具备上传分片文件的客户端向云服务器上传分片文件。
参照图5,图5为本发明实施例中提供的一种文件上传装置的结构示意图,该装置500设置于客户端,包括:
第一发送模块510,用于向业务服务器发送文件上传请求;
接收模块520,用于接收业务服务器发送的与每个云服务器各自对应的对象信息;其中,云服务器的个数为一个时,对象信息包括多个对象标识,或者,云服务器的个数为多个时,对象信息包括至少一个对象标识,对象标识为业务服务器响应于文件上传请求为每个云服务器分配的;
分片模块530,用于对目标文件进行分片,获得分片文件,并为分片文件分配分片标识;
第二发送模块540,用于针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识,其中,一个对象标识对应一个上传渠道,云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。
可选的,分片模块530,具体用于按照预设切分单元大小对目标文件进行分片,获得分片文件;或者,
根据云服务器的上传性能指标,对目标文件进行分片,获得与云服务器的上传性能指标相匹配的分片文件。
可选的,还包括:
判断模块,用于判断目标文件的大小是否大于或等于预设阈值;
接收模块520,具体用于在目标文件的大小大于或等于预设阈值的情况下,接收业务服务器发送的与每个云服务器各自对应的对象信息。
可选的,对象信息还包括令牌,令牌与对象信息包括的对象标识对应。
可选的,还包括:
第三发送模块,用于向业务服务器发送文件上传完成通知消息,其中,文件上传完成通知消息包括客户端向每个云服务器上传的分片文件的分片标识和分片大小,以使业务服务器响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的分片文件,并根据文件上传完成通知消息,对从每个云服务器获取的分片文件进行重组,以获得目标文件。
参照图6,图6为本发明实施例中提供的一种文件重组装置的结构示意图,该装置600设置于业务服务器,包括:
第一接收模块610,用于接收客户端发送的文件上传请求;
第一获取模块620,用于响应于文件上传请求,为每个云服务器分配与每个云服务器对应的对象标识;
发送模块630,用于向客户端发送与每个云服务器各自对应的对象信息,以使客户端对目标文件进行分片,获得分片文件,并向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识,云服务器的个数为一个时,对象信息包括多个对象标识,向云服务器并行发送的分片文件为多个;或者,云服务器的个数为多个时,对象信息包括至少一个对象标识,向云服务器并行发送的分片文件为至少一个。
第二接收模块640,用于接收客户端发送的文件上传完成通知消息;其中,文件上传完成通知消息包括客户端向每个云服务器上传的分片文件的分片标识和分片大小;
第二获取模块650,用于响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的分片文件;
重组模块660,用于根据文件上传完成通知消息,对从每个云服务器获取的分片文件进行重组,以获得目标文件。
可选的,第二获取模块650,具体用于响应于文件上传完成通知消息,从每个云服务器获取与对象标识关联的子文件,并根据文件上传完成通知消息,对从云服务器获取的子文件进行分片,以获得向每个云服务器上传的分片文件;其中,子文件为云服务器将客户端上传到云服务器的分片文件拼接获得的文件。
可选的,还包括:
生成模块,用于生成与每个对象标识分别对应的令牌;
发送模块630,具体用于向客户端发送为每个云服务器分配的对象标识、以及与对象标识对应的令牌,对象信息包括对象标识、以及与对象标识对应的令牌。
参照图7,图7为本发明实施例中提供的另一种文件上传装置的结构示意图,该装置700设置于云服务器,包括:
接收模块710,用于接收客户端发送的至少一个分片文件和云服务器对应的对象信息,分片文件为客户端对目标文件进行分片获得的;
存储模块720,用于存储分片文件、以及分片文件与对象信息包括的对象标识的关联关系;
发送模块730,用于向业务服务器发送存储的与对象标识关联的分片文件。
可选的,接收模块710,具体用于接收客户端发送的分片文件、云服务器对应的对象标识、以及与对象标识对应的令牌;其中,对象信息包括云服务器分配的对象标识、以及与对象标识对应的令牌;根据令牌判断客户端是否具有上传分片文件的权限;
存储模块720,具体用于在客户端具有上传分片文件的权限的情况下,存储分片文件、以及分片文件与对象标识的关联关系。
本发明实施例还提供了一种电子设备,图8为本发明实施例中提供的一种电子设备的结构示意图。如图8所示,包括处理器801、通信接口802、存储器 803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
向业务服务器发送文件上传请求,接收业务服务器发送的与每个云服务器各自对应的对象信息,对目标文件进行分片,获得分片文件,并为分片文件分配分片标识,针对每个云服务器,通过云服务器对应的上传渠道向每个云服务器并行发送至少一个分片文件、云服务器对应的对象信息、以及至少一个分片文件的分片标识,一个对象标识对应一个上传渠道,云服务器的个数为一个时,向云服务器并行发送的分片文件为多个;云服务器的个数为多个时,向云服务器并行发送的分片文件为至少一个。从而可以在客户端可用带宽较高,而云服务器为单个客户端分配的带宽小于客户端可用带宽的情况下,提高文件上传速度,降低文件上传所需时间。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的文件上传方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的文件上传方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (14)

1.一种文件上传方法,其特征在于,执行于客户端,包括:
向业务服务器发送文件上传请求;
接收所述业务服务器发送的与每个云服务器各自对应的对象信息;其中,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,所述对象标识为所述业务服务器响应于所述文件上传请求为每个所述云服务器分配的;
对目标文件进行分片,获得分片文件,并为所述分片文件分配分片标识;
针对每个所述云服务器,通过所述云服务器对应的上传渠道向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,其中,一个所述对象标识对应一个所述上传渠道,所述云服务器的个数为一个时,向所述云服务器并行发送的分片文件为多个;所述云服务器的个数为多个时,向所述云服务器并行发送的分片文件为至少一个。
2.根据权利要求1所述的方法,其特征在于,所述对目标文件进行分片,获得分片文件,包括:
按照预设切分单元大小对所述目标文件进行分片,获得分片文件;或者,
根据所述云服务器的上传性能指标,对所述目标文件进行分片,获得与所述云服务器的上传性能指标相匹配的所述分片文件。
3.根据权利要求1或2所述的方法,其特征在于,在所述接收所述业务服务器发送的与每个云服务器各自对应的对象信息之前,还包括:
判断所述目标文件的大小是否大于或等于预设阈值;
所述接收所述业务服务器发送的与每个云服务器各自对应的对象信息,包括:
在所述目标文件的大小大于或等于预设阈值的情况下,接收所述业务服务器发送的与每个云服务器各自对应的对象信息。
4.根据权利要求1或2所述的方法,其特征在于,所述对象信息还包括令牌,所述令牌与所述对象信息包括的对象标识对应。
5.根据权利要求1所述的方法,其特征在于,在所述针对每个所述云服务器,通过所述云服务器对应的上传渠道向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识之后,还包括:
向所述业务服务器发送文件上传完成通知消息,其中,所述文件上传完成通知消息包括所述客户端向每个所述云服务器上传的分片文件的分片标识和分片大小,以使所述业务服务器响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件,并根据所述文件上传完成通知消息,对从每个所述云服务器获取的分片文件进行重组,以获得所述目标文件。
6.一种文件重组方法,其特征在于,执行于业务服务器,包括:
接收客户端发送的文件上传请求;
响应于所述文件上传请求,为每个云服务器分配与每个所述云服务器对应的对象标识;
向所述客户端发送与每个所述云服务器各自对应的对象信息,以使所述客户端对目标文件进行分片,获得分片文件,并向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,向所述云服务器并行发送的分片文件为多个;或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,向所述云服务器并行发送的分片文件为至少一个;
接收所述客户端发送的文件上传完成通知消息;其中,所述文件上传完成通知消息包括所述客户端向每个所述云服务器上传的所述分片文件的分片标识和分片大小;
响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件;
根据所述文件上传完成通知消息,对从每个所述云服务器获取的分片文件进行重组,以获得所述目标文件。
7.根据权利要求6所述的方法,其特征在于,所述响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件,包括:
响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的子文件,并根据所述文件上传完成通知消息,对从所述云服务器获取的子文件进行分片,以获得向每个所述云服务器上传的分片文件;其中,所述子文件为所述云服务器将所述客户端上传到所述云服务器的分片文件拼接获得的文件。
8.根据权利要求6或7所述的方法,其特征在于,在所述向所述客户端发送对象信息之前,还包括:
生成与每个对象标识分别对应的令牌;
所述向所述客户端发送与每个所述云服务器各自对应的对象信息,包括:
向所述客户端发送为每个所述云服务器分配的所述对象标识、以及与所述对象标识对应的令牌,所述对象信息包括所述对象标识、以及与所述对象标识对应的令牌。
9.一种文件上传方法,其特征在于,执行于云服务器,包括:
接收客户端发送的至少一个分片文件和所述云服务器对应的对象信息,所述分片文件为所述客户端对目标文件进行分片获得的;
存储所述分片文件、以及所述分片文件与所述对象信息包括的对象标识的关联关系;
向业务服务器发送存储的与所述对象标识关联的所述分片文件。
10.根据权利要求9所述的方法,其特征在于,所述接收客户端发送的至少一个分片文件和所述云服务器对应的对象信息,包括:
接收所述客户端发送的分片文件、所述云服务器对应的对象标识、以及与所述对象标识对应的令牌;其中,所述对象信息包括所述云服务器分配的对象标识、以及与所述对象标识对应的令牌;
根据所述令牌判断所述客户端是否具有上传所述分片文件的权限;
所述存储所述分片文件、以及所述分片文件与所述对象标识的关联关系,包括:
在所述客户端具有上传所述分片文件的权限的情况下,存储所述分片文件、以及所述分片文件与所述对象标识的关联关系。
11.一种文件上传装置,其特征在于,设置于客户端,包括:
第一发送模块,用于向业务服务器发送文件上传请求;
接收模块,用于接收所述业务服务器发送的与每个云服务器各自对应的对象信息;其中,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,所述对象标识为所述业务服务器响应于所述文件上传请求为每个所述云服务器分配的;
分片模块,用于对目标文件进行分片,获得分片文件,并为所述分片文件分配分片标识;
第二发送模块,用于针对每个所述云服务器,通过所述云服务器对应的上传渠道向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,其中,一个所述对象标识对应一个所述上传渠道,所述云服务器的个数为一个时,向所述云服务器并行发送的分片文件为多个;所述云服务器的个数为多个时,向所述云服务器并行发送的分片文件为至少一个。
12.一种文件重组装置,其特征在于,设置于业务服务器,包括:
第一接收模块,用于接收客户端发送的文件上传请求;
第一获取模块,用于响应于所述文件上传请求,为每个云服务器分配与每个所述云服务器对应的对象标识;
发送模块,用于向所述客户端发送与每个所述云服务器各自对应的对象信息,以使所述客户端对目标文件进行分片,获得分片文件,并向每个所述云服务器并行发送至少一个分片文件、所述云服务器对应的对象信息、以及所述至少一个分片文件的分片标识,所述云服务器的个数为一个时,所述对象信息包括多个对象标识,向所述云服务器并行发送的分片文件为多个;或者,所述云服务器的个数为多个时,所述对象信息包括至少一个所述对象标识,向所述云服务器并行发送的分片文件为至少一个;
第二接收模块,用于接收所述客户端发送的文件上传完成通知消息;其中,所述文件上传完成通知消息包括所述客户端向每个所述云服务器上传的所述分片文件的分片标识和分片大小;
第二获取模块,用于响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的分片文件;
重组模块,用于根据所述文件上传完成通知消息,对从每个所述云服务器获取的分片文件进行重组,以获得所述目标文件。
13.根据权利要求12所述的装置,其特征在于,所述第二获取模块,具体用于响应于所述文件上传完成通知消息,从每个所述云服务器获取与所述对象标识关联的子文件,并根据所述文件上传完成通知消息,对从所述云服务器获取的子文件进行分片,以获得向每个所述云服务器上传的分片文件;其中,所述子文件为所述云服务器将所述客户端上传到所述云服务器的分片文件拼接获得的文件。
14.一种文件上传装置,其特征在于,设置于云服务器,包括:
接收模块,用于接收客户端发送的至少一个分片文件和所述云服务器对应的对象信息,所述分片文件为所述客户端对目标文件进行分片获得的;
存储模块,用于存储所述分片文件、以及所述分片文件与所述对象信息包括的对象标识的关联关系;
发送模块,用于向业务服务器发送存储的与所述对象标识关联的所述分片文件。
CN201911342700.8A 2019-12-23 2019-12-23 文件上传方法、重组方法及装置 Active CN111131450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911342700.8A CN111131450B (zh) 2019-12-23 2019-12-23 文件上传方法、重组方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911342700.8A CN111131450B (zh) 2019-12-23 2019-12-23 文件上传方法、重组方法及装置

Publications (2)

Publication Number Publication Date
CN111131450A true CN111131450A (zh) 2020-05-08
CN111131450B CN111131450B (zh) 2022-06-21

Family

ID=70501544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911342700.8A Active CN111131450B (zh) 2019-12-23 2019-12-23 文件上传方法、重组方法及装置

Country Status (1)

Country Link
CN (1) CN111131450B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086850A (zh) * 2019-03-19 2019-08-02 视联动力信息技术股份有限公司 一种文件的处理方法和视联网网盘系统
CN111294410A (zh) * 2020-05-11 2020-06-16 杭州朗澈科技有限公司 一种本地镜像上传多地域私有镜像仓库的方法
CN111880826A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云业务应用升级方法、装置、电子设备和存储介质
CN112118411A (zh) * 2020-08-14 2020-12-22 视联动力信息技术股份有限公司 一种数据传输方法、装置、终端设备和存储介质
CN112231408A (zh) * 2020-10-22 2021-01-15 微医云(杭州)控股有限公司 数据集成方法及装置、电子设备、存储介质
CN112491990A (zh) * 2020-11-17 2021-03-12 中科三清科技有限公司 混合云网络数据传输方法、装置、电子设备及存储介质
CN112612770A (zh) * 2020-12-28 2021-04-06 深圳市科创思科技有限公司 一种分布式文件上传方法及系统
CN112615757A (zh) * 2020-12-11 2021-04-06 上海哔哩哔哩科技有限公司 内容分发网络链路评估方法及装置
CN113438520A (zh) * 2021-06-29 2021-09-24 北京奇艺世纪科技有限公司 数据处理方法、装置及系统
CN113438499A (zh) * 2021-06-29 2021-09-24 北京奇艺世纪科技有限公司 数据上传和接收方法、装置、设备及存储介质
CN113472896A (zh) * 2020-09-24 2021-10-01 中国电建集团海外投资有限公司 一种基于公有云的数据发送方法
CN115174561A (zh) * 2022-09-08 2022-10-11 北京亿赛通网络安全技术有限公司 一种文件分段传输方法及系统
CN115396423A (zh) * 2022-07-29 2022-11-25 五八同城信息技术有限公司 文件传输方法、装置、电子设备及存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710630A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种多线程分片的云上传下载方法及系统
CN103731451A (zh) * 2012-10-12 2014-04-16 腾讯科技(深圳)有限公司 一种文件上传的方法及系统
CN103986764A (zh) * 2014-05-16 2014-08-13 百度在线网络技术(北京)有限公司 用于多客户端协同文件上传的设备和方法
US20150205979A1 (en) * 2012-06-19 2015-07-23 Beijing Qihoo Technology Company Limited Method and system for repairing file at user terminal
CN105072135A (zh) * 2015-09-02 2015-11-18 中国地质大学(武汉) 一种云文件共享的授权鉴权方法及系统
CN106921682A (zh) * 2015-12-24 2017-07-04 百度在线网络技术(北京)有限公司 文件上传方法和装置
CN107172131A (zh) * 2017-04-26 2017-09-15 腾讯科技(深圳)有限公司 文件上传方法和装置
CN107819828A (zh) * 2017-10-16 2018-03-20 平安科技(深圳)有限公司 数据传输方法、装置、计算机设备和存储介质
CN107872489A (zh) * 2016-09-28 2018-04-03 杭州海康威视数字技术股份有限公司 一种文件切片上传方法、装置及云存储系统
CN109067625A (zh) * 2018-10-19 2018-12-21 瑞斯康达科技发展股份有限公司 一种业务通道性能的检测方法、设备及系统
CN109257405A (zh) * 2017-07-14 2019-01-22 中兴通讯股份有限公司 文件上传的处理方法、装置和服务器
CN109831506A (zh) * 2019-01-31 2019-05-31 百度在线网络技术(北京)有限公司 文件上传方法、装置、终端、服务器及可读存储介质
CN110012055A (zh) * 2018-12-29 2019-07-12 北京乐我无限科技有限责任公司 文件上传方法、装置及系统
CN110401725A (zh) * 2019-08-23 2019-11-01 深圳市鹰硕技术有限公司 文件上传方法、装置、终端、服务器、系统及存储介质
CN110430274A (zh) * 2019-08-09 2019-11-08 西藏宁算科技集团有限公司 一种基于云存储的文件下载方法及系统

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710630A (zh) * 2012-05-29 2012-10-03 新华网股份有限公司 一种多线程分片的云上传下载方法及系统
US20150205979A1 (en) * 2012-06-19 2015-07-23 Beijing Qihoo Technology Company Limited Method and system for repairing file at user terminal
CN103731451A (zh) * 2012-10-12 2014-04-16 腾讯科技(深圳)有限公司 一种文件上传的方法及系统
US20150215400A1 (en) * 2012-10-12 2015-07-30 Tencent Technology (Shenzhen) Company Limited File Upload Method And System
CN103986764A (zh) * 2014-05-16 2014-08-13 百度在线网络技术(北京)有限公司 用于多客户端协同文件上传的设备和方法
CN105072135A (zh) * 2015-09-02 2015-11-18 中国地质大学(武汉) 一种云文件共享的授权鉴权方法及系统
CN106921682A (zh) * 2015-12-24 2017-07-04 百度在线网络技术(北京)有限公司 文件上传方法和装置
CN107872489A (zh) * 2016-09-28 2018-04-03 杭州海康威视数字技术股份有限公司 一种文件切片上传方法、装置及云存储系统
CN107172131A (zh) * 2017-04-26 2017-09-15 腾讯科技(深圳)有限公司 文件上传方法和装置
CN109257405A (zh) * 2017-07-14 2019-01-22 中兴通讯股份有限公司 文件上传的处理方法、装置和服务器
CN107819828A (zh) * 2017-10-16 2018-03-20 平安科技(深圳)有限公司 数据传输方法、装置、计算机设备和存储介质
CN109067625A (zh) * 2018-10-19 2018-12-21 瑞斯康达科技发展股份有限公司 一种业务通道性能的检测方法、设备及系统
CN110012055A (zh) * 2018-12-29 2019-07-12 北京乐我无限科技有限责任公司 文件上传方法、装置及系统
CN109831506A (zh) * 2019-01-31 2019-05-31 百度在线网络技术(北京)有限公司 文件上传方法、装置、终端、服务器及可读存储介质
CN110430274A (zh) * 2019-08-09 2019-11-08 西藏宁算科技集团有限公司 一种基于云存储的文件下载方法及系统
CN110401725A (zh) * 2019-08-23 2019-11-01 深圳市鹰硕技术有限公司 文件上传方法、装置、终端、服务器、系统及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
岳欣: "带加密的个人云存储系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086850A (zh) * 2019-03-19 2019-08-02 视联动力信息技术股份有限公司 一种文件的处理方法和视联网网盘系统
CN110086850B (zh) * 2019-03-19 2022-11-15 视联动力信息技术股份有限公司 一种文件的处理方法和视联网网盘系统
CN111294410A (zh) * 2020-05-11 2020-06-16 杭州朗澈科技有限公司 一种本地镜像上传多地域私有镜像仓库的方法
CN111880826A (zh) * 2020-07-28 2020-11-03 平安科技(深圳)有限公司 云业务应用升级方法、装置、电子设备和存储介质
CN112118411A (zh) * 2020-08-14 2020-12-22 视联动力信息技术股份有限公司 一种数据传输方法、装置、终端设备和存储介质
CN113472896A (zh) * 2020-09-24 2021-10-01 中国电建集团海外投资有限公司 一种基于公有云的数据发送方法
CN113472896B (zh) * 2020-09-24 2023-10-27 中国电建集团海外投资有限公司 一种基于公有云的数据发送方法
CN112231408A (zh) * 2020-10-22 2021-01-15 微医云(杭州)控股有限公司 数据集成方法及装置、电子设备、存储介质
CN112231408B (zh) * 2020-10-22 2023-05-23 微医云(杭州)控股有限公司 数据集成方法及装置、电子设备、存储介质
CN112491990A (zh) * 2020-11-17 2021-03-12 中科三清科技有限公司 混合云网络数据传输方法、装置、电子设备及存储介质
CN112615757B (zh) * 2020-12-11 2022-04-26 上海哔哩哔哩科技有限公司 内容分发网络链路评估方法及装置
CN112615757A (zh) * 2020-12-11 2021-04-06 上海哔哩哔哩科技有限公司 内容分发网络链路评估方法及装置
CN112612770A (zh) * 2020-12-28 2021-04-06 深圳市科创思科技有限公司 一种分布式文件上传方法及系统
CN112612770B (zh) * 2020-12-28 2024-05-14 深圳市科创思科技有限公司 一种分布式文件上传方法及系统
CN113438499A (zh) * 2021-06-29 2021-09-24 北京奇艺世纪科技有限公司 数据上传和接收方法、装置、设备及存储介质
CN113438520A (zh) * 2021-06-29 2021-09-24 北京奇艺世纪科技有限公司 数据处理方法、装置及系统
CN113438499B (zh) * 2021-06-29 2023-02-03 北京奇艺世纪科技有限公司 数据上传和接收方法、装置、设备及存储介质
CN115396423A (zh) * 2022-07-29 2022-11-25 五八同城信息技术有限公司 文件传输方法、装置、电子设备及存储介质
CN115174561A (zh) * 2022-09-08 2022-10-11 北京亿赛通网络安全技术有限公司 一种文件分段传输方法及系统
CN115174561B (zh) * 2022-09-08 2022-11-22 北京亿赛通网络安全技术有限公司 一种文件分段传输方法及系统

Also Published As

Publication number Publication date
CN111131450B (zh) 2022-06-21

Similar Documents

Publication Publication Date Title
CN111131450B (zh) 文件上传方法、重组方法及装置
US20190190808A1 (en) Bidirectional data traffic control
US8069251B2 (en) System and/or method for client-driven server load distribution
CN114040467B (zh) 一种传输路径的确定方法、装置、服务器及存储介质
US11711306B2 (en) Determining quality information for a route
US11888653B2 (en) Managing network packet flows based on device information
WO2015096680A1 (zh) 一种节点分配方法和控制中心
CN110958265B (zh) 一种基于行情数据实时转发的方法及装置
CN111181873B (zh) 数据发送方法、装置、存储介质和电子设备
JP6968990B2 (ja) サービス品質を決定するための方法および装置、ならびにプログラム
US20140280701A1 (en) Distributed computing
US11297591B1 (en) Handling multiple fine timing measurement ranging requests
WO2020096501A1 (en) Traffic steering device
CN102904916B (zh) 建立点对点通信的方法、索引服务器及系统
US7783784B1 (en) Method and apparatus for adaptive selection of algorithms to load and spread traffic on an aggregation of network interface cards
US11683722B2 (en) Fine timing measurements in enterprise deployments using high bandwidth channels
CN110247847B (zh) 节点之间回源选路的方法和装置
CN116321162A (zh) 一种基于wifi6的区块链认证方法、系统、终端及介质
US20160323780A1 (en) Method and apparatus for using call admission control for client balancing
WO2018121421A1 (zh) 一种流数据的跨域传输方法、装置和系统
CN111669610B (zh) 直播视频的传输方法、系统、装置、服务器、电子设备及存储介质
CN111083060A (zh) 一种网络流量控制方法
CN115314945B (zh) 一种业务处理方法、装置、服务器及存储介质
Kusbandono et al. Analysis of First In First Out (FIFO) Bandwidth Packet Queuing Technique with Random Early Detection (RED) on WLAN (Wireless LAN)
TWI690174B (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