CN104361057A - 一种上传多媒体文件的方法及装置 - Google Patents
一种上传多媒体文件的方法及装置 Download PDFInfo
- Publication number
- CN104361057A CN104361057A CN201410607296.3A CN201410607296A CN104361057A CN 104361057 A CN104361057 A CN 104361057A CN 201410607296 A CN201410607296 A CN 201410607296A CN 104361057 A CN104361057 A CN 104361057A
- Authority
- CN
- China
- Prior art keywords
- thread
- server
- media segment
- upload
- 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
Classifications
-
- 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/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种上传多媒体文件的方法及装置,用以解决现有上传技术上传速度慢的问题。该方法包括:将多媒体文件分割为不超过预设大小的多个多媒体片段;通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。上述技术方案,通过多个上传线程完成多媒体文件的上传,相比现有技术利用单线程上传,提高了上传速度。
Description
技术领域
本发明涉及数据上传技术领域,尤其涉及一种上传多媒体文件的方法及装置。
背景技术
现有的客户端或者终端设备向网络侧的服务器上传多媒体文件时,通常是单线程上传,即整个多媒体文件只依赖单个线程来完成上传过程,这不免产生一些问题,比如该单个线程在上传多媒体文件的过程中,如果该单个线程出现传输故障,则上传会终止,从而使得上传失败,如果用户想完成上传,必须重新启动线程来完成整个多媒体文件的上传,用户操作繁琐;并且,由于是单线程上传,因此,上传速度慢。
发明内容
为克服相关技术中存在的问题,本发明实施例提供一种上传多媒体文件的方法及装置,用以解决现有上传技术上传速度慢的问题。
本发明实施例提供了一种上传多媒体文件的方法,包括:
将多媒体文件分割为不超过预设大小的多个多媒体片段;
通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。
在一个实施例中,所述通过多个上传线程,将所述多个多媒体片段上传至服务器,包括:
分别将每个多媒体片段数据和所述多媒体文件的业务数据写入该多媒体片段对应的上传请求中;
将每个多媒体片段各自对应的上传请求分配至该多媒体片段对应的上传线程;
启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
在一个实施例中,所述方法还包括:
将所述多个多媒体片段依序通过一个总上传线程上传至服务器。
在一个实施例中,所述通过多个上传线程,将所述多个多媒体片段上传至服务器,包括:
将所述多个多媒体片段依序通过一个总上传线程上传至服务器;
在总上传线程上传结束之后,监控所述总上传线程是否存在未成功上传至服务器的多媒体片段;当存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
在一个实施例中,所述上传请求包括超文本传输协议HTTP请求。
本发明实施例还提供了一种上传多媒体文件的装置,包括:
分割模块,用于将多媒体文件分割为不超过预设大小的多个多媒体片段;
第一上传模块,用于通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。
在一个实施例中,所述第一上传模块,包括:
请求生成子模块,用于分别将每个多媒体片段数据和所述多媒体文件的业务数据写入该多媒体片段对应的上传请求中;
请求分配子模块,用于将每个多媒体片段各自对应的上传请求分配至该多媒体片段对应的上传线程;
第一上传子模块,用于启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
在一个实施例中,所述装置还包括:
第二上传模块,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器。
在一个实施例中,所述第一上传模块,包括:
第二上传子模块,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器;
第三上传子模块,用于在总上传线程上传结束之后,监控所述总上传线程是否存在未成功上传至服务器的多媒体片段;当存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
在一个实施例中,所述上传请求包括超文本传输协议HTTP请求。
本发明实施例提供的上述技术方案,通过多个上传线程完成多媒体文件的上传,相比现有技术利用单线程上传,提高了上传速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种上传多媒体文件的方法的流程图;
图2为本发明实施例中一种上传多媒体文件的装置的结构图;
图3为本发明实施例中一种上传多媒体文件的装置中一种第一上传模块的结构图;
图4为本发明实施例中一种上传多媒体文件的装置的结构图;
图5为本发明实施例中一种上传多媒体文件的装置中另一种第一上传模块的结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明实施例提供了一种上传多媒体文件的方法,该方法可应用于应用程序、客户端或者终端设备如手机、电脑等,如图1所示,该方法可包括如下步骤S101-S102:
步骤S101、将多媒体文件分割为不超过预设大小的多个多媒体片段。
其中,预设大小的值可根据每个上传线程的最大可传输数据大小来设置,最大不能超过每个上传线程的最大可传输数据大小。比如系统规定每个上传线程的最大可传输数据大小为1MB,则预设大小为1MB或者小于1MB。
在将多媒体文件分割为不超过预设大小的多个多媒体片段时,可从文件的起始点开始计算分割点,分割点两侧的数据便是多媒体片段的内容,根据分割点的位置计算出每个多媒体片段的起始点和结束点,根据计算出的每个多媒体片段的起始点和结束点对多媒体文件进行分割。
步骤S102、通过多个上传线程,将多个多媒体片段上传至服务器,由服务器存储。
其中,如果可启动的上传线程的最大数目有限制,则可根据多媒体片段的数目、和可启动的上传线程的最大数目,来为每个上传线程分配数量均衡的多媒体片段。比如最多可启动5个上传线程,多媒体片段的数目有10个,则可为每个上传线程分配2个多媒体片段,预先为每个上传线程配置编号,比如0、1、2、3、4,先在第0号上传线程上分配第一个和第二个多媒体片段,然后在第1号上传线程上分配第三个和第四个多媒体片段、、、、、、以此类推,直到在第4号上传线程上分配了第九个和第十个多媒体片段。如果多媒体片段的数目是11个,则可将第十一个多媒体片段分配至该5个上传线程中的任一个上。这样,每个上传线程上可能被分配一个多媒体片段或者多个多媒体片段。如果一个上传线程上被分配了多个多媒体片段,则在利用该上传线程上传该多个多媒体片段时,可为该多媒体片段配置上传顺序,该上传线程依序将该多个多媒体片段上传至服务器。另外,如果上传线程的数目不受限制,则可为每个多媒体片段分配一个上传线程,每个上传线程上被分配一个多媒体片段。
本发明实施例提供的上述方法,通过多个上传线程完成多媒体文件的上传,相比现有技术利用单线程上传,提高了上传速度。
其中,步骤S102可实施为如下方式一或者方式二:
方式一、通过多个上传线程上传,另外,还可用另一个总上传线程作为辅助
在方式一中,步骤S102可包括如下步骤A1-A3:
步骤A1、分别将每个视频片段数据和视频文件的业务数据写入该视频片段对应的上传请求中。
步骤A2、将每个视频片段各自对应的上传请求分配至该视频片段对应的上传线程。
步骤A3、启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
其中,将视频文件的业务数据也写入每个视频片段数据对应的上传请求中,即上传请求中包括文件实体与业务数据,这样可以保证上传的顺畅、提高上传的成功率。服务器接收到每个视频片段各自对应的上传请求时,进行相应的处理,比如对上传的多媒体片段依序合并,生成多媒体文件,同时将业务数据写入数据库。
最终将上传来的多个多媒体片段拼接为一个多媒体文件。
另外,为了对上传任务的完整性加以巩固,可以另外启动一个单独的线程,称为总上传线程,该总上传线程用于在上述多个上传线程上传视频片段的同时,依序将多个视频片段上传至服务器。这样,即使多个上传线程中的一个或者多个上传线程上传失败,也有该总上传线程作为保险线程来完整地完成上传任务。
方式二、通过一个总上传线程上传,另外,用多个上传线程作为辅助
在有些服务器环境下,从安全角度出发,服务器会规定上传线程的数目只能是1个,即只允许单线程上传。此时,为了适配各种情况,上传多媒体文件的一侧如客户端或者终端设备,可配置本地的上传线程总数为1个,此时,步骤S102可包括如下步骤B1-B2:
步骤B1、将多个多媒体片段依序通过一个总上传线程上传至服务器。
步骤B2、在总上传线程上传结束之后,监控总上传线程是否存在未成功上传至服务器的多媒体片段;当总上传线程存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
在方式二中,不仅满足服务器对上传线程数目的规定,而且还保证了上传任务的完整性。
上述方法中,上传可使用HTTP(HyperText Transfer Protocol,超文本传输协议)协议,上传请求可以是HTTP请求,上传方法(HTTP Method)可以是POST。
上述方法中,在每个上传线程或者总上传线程将数据上传给服务器之后,服务器会返回一个回应给上传侧,该回应表明上传线程的此次上传任务是失败还是成功,如果该回应表明该上传线程的此次上传任务成功,则上传侧会标记该上传线程的此次上传任务成功,并分配下一个上传任务给该上传线程,直到没有上传任务可分配给该上传线程时,回收线程资源,上传完成;如果该回应表明该上传线程的此次上传任务失败,则上传侧会控制该上传线程重新启动此次上传任务,如果重启预设次数之后还不成功,则可放弃上传。如果每个上传线程的上传任务都失败,则即刻进行重新上传,如果重复预设次数之后仍失败,则令当前全部上传任务停止,文件上传失败,等待用户手动操作。
在一个实施例中,在每个上传线程成功完成上传任务之后,上传侧或者服务器可根据需要启动的上传线程的总数目与成功完成上传任务的上传线程数目,或者根据需要的上传次数与成功完成的上传次数,来计算整个上传任务的百分比进度,以此作为总进度数据。当所有上传线程均成功完成上传任务后,上传进度为100%。
服务器可实时监测完成上传任务的上传线程编号与需要启动的上传线程总数目的关系,待全部上传线程的上传任务均完成时,对上传的多媒体片段依序合并,生成多媒体文件,同时将业务数据写入数据库。全部完成后,最终完成上传任务。
本发明实施例还提供了一种上传多媒体文件的装置,如图2所示,包括:
分割模块21,用于将多媒体文件分割为不超过预设大小的多个多媒体片段;
第一上传模块22,用于通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。
在一个实施例中,如图3所示,第一上传模块22可包括:
请求生成子模块31,用于分别将每个多媒体片段数据和所述多媒体文件的业务数据写入该多媒体片段对应的上传请求中;
请求分配子模块32,用于将每个多媒体片段各自对应的上传请求分配至该多媒体片段对应的上传线程;
第一上传子模块33,用于启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
在一个实施例中,如图4所示,上述装置还可包括:
第二上传模块41,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器。
在一个实施例中,如图5所示,所述第一上传模块22可包括:
第二上传子模块51,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器;
第三上传子模块52,用于在总上传线程上传结束之后,监控所述总上传线程是否存在未成功上传至服务器的多媒体片段;当存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
在一个实施例中,所述上传请求包括超文本传输协议HTTP请求。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种上传多媒体文件的方法,其特征在于,包括:
将多媒体文件分割为不超过预设大小的多个多媒体片段;
通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。
2.如权利要求1所述的方法,其特征在于,所述通过多个上传线程,将所述多个多媒体片段上传至服务器,包括:
分别将每个多媒体片段数据和所述多媒体文件的业务数据写入该多媒体片段对应的上传请求中;
将每个多媒体片段各自对应的上传请求分配至该多媒体片段对应的上传线程;
启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
将所述多个多媒体片段依序通过一个总上传线程上传至服务器。
4.如权利要求1所述的方法,其特征在于,所述通过多个上传线程,将所述多个多媒体片段上传至服务器,包括:
将所述多个多媒体片段依序通过一个总上传线程上传至服务器;
在总上传线程上传结束之后,监控所述总上传线程是否存在未成功上传至服务器的多媒体片段;当存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
5.如权利要求2至4中任一所述的方法,其特征在于,
所述上传请求包括超文本传输协议HTTP请求。
6.一种上传多媒体文件的装置,其特征在于,包括:
分割模块,用于将多媒体文件分割为不超过预设大小的多个多媒体片段;
第一上传模块,用于通过多个上传线程,将所述多个多媒体片段上传至服务器,由所述服务器存储。
7.如权利要求6所述的装置,其特征在于,所述第一上传模块,包括:
请求生成子模块,用于分别将每个多媒体片段数据和所述多媒体文件的业务数据写入该多媒体片段对应的上传请求中;
请求分配子模块,用于将每个多媒体片段各自对应的上传请求分配至该多媒体片段对应的上传线程;
第一上传子模块,用于启动每个上传线程,将每个上传线程上的上传请求发送至服务器。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
第二上传模块,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器。
9.如权利要求6所述的装置,其特征在于,所述第一上传模块,包括:
第二上传子模块,用于将所述多个多媒体片段依序通过一个总上传线程上传至服务器;
第三上传子模块,用于在总上传线程上传结束之后,监控所述总上传线程是否存在未成功上传至服务器的多媒体片段;当存在未成功上传至服务器的多媒体片段时,将该未成功上传至服务器的多媒体片段分配至另一个上传线程,启动该另一个上传线程,将该未成功上传至服务器的多媒体片段上传至服务器。
10.如权利要求6至9中任一所述的装置,其特征在于,
所述上传请求包括超文本传输协议HTTP请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410607296.3A CN104361057A (zh) | 2014-10-31 | 2014-10-31 | 一种上传多媒体文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410607296.3A CN104361057A (zh) | 2014-10-31 | 2014-10-31 | 一种上传多媒体文件的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104361057A true CN104361057A (zh) | 2015-02-18 |
Family
ID=52528318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410607296.3A Pending CN104361057A (zh) | 2014-10-31 | 2014-10-31 | 一种上传多媒体文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361057A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106358070A (zh) * | 2015-07-15 | 2017-01-25 | 腾讯科技(深圳)有限公司 | 多媒体文件上传方法及装置 |
CN108933805A (zh) * | 2017-05-26 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种文件传输方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656751A (zh) * | 2008-08-18 | 2010-02-24 | 北京数码大方科技有限公司 | 加速上传与下载文件的方法及其系统 |
CN101719926A (zh) * | 2009-12-03 | 2010-06-02 | 成都耀邦科技有限责任公司 | web service多线程文件上传系统 |
CN102065113A (zh) * | 2009-11-16 | 2011-05-18 | 北大方正集团有限公司 | 一种文件加速上传的方法及系统 |
-
2014
- 2014-10-31 CN CN201410607296.3A patent/CN104361057A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656751A (zh) * | 2008-08-18 | 2010-02-24 | 北京数码大方科技有限公司 | 加速上传与下载文件的方法及其系统 |
CN102065113A (zh) * | 2009-11-16 | 2011-05-18 | 北大方正集团有限公司 | 一种文件加速上传的方法及系统 |
CN101719926A (zh) * | 2009-12-03 | 2010-06-02 | 成都耀邦科技有限责任公司 | web service多线程文件上传系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106358070A (zh) * | 2015-07-15 | 2017-01-25 | 腾讯科技(深圳)有限公司 | 多媒体文件上传方法及装置 |
CN108933805A (zh) * | 2017-05-26 | 2018-12-04 | 武汉斗鱼网络科技有限公司 | 一种文件传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862065B (zh) | 文件下载方法、装置和电子设备 | |
US10613788B2 (en) | Data migration between cloud storage systems | |
CN107483627B (zh) | 一种文件分发、下载方法、分发服务器、客户端及系统 | |
CN106445951B (zh) | 一种文件传输方法和装置 | |
CN106657314B (zh) | 跨数据中心数据同步系统及方法 | |
US20150089382A1 (en) | Application context migration framework and protocol | |
EP3499846B1 (en) | File distribution method, file download method, distribution server, client, and system | |
US20170171295A1 (en) | File upload and download methods and associated server | |
CN102202061B (zh) | 客户机-服务器会话并行化 | |
CN107689976B (zh) | 一种文件传输方法及装置 | |
CN104363463A (zh) | 一种视频处理方法、装置及系统 | |
CN107544298B (zh) | 一种摄像头调用方法和装置 | |
CN105407413A (zh) | 一种分布式视频转码方法及相关设备、系统 | |
WO2018233539A1 (zh) | 视频处理方法、计算机存储介质及设备 | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN103813181A (zh) | 一种视频优化系统及方法 | |
CN103595707A (zh) | 一种基于svn的文件自动网络同步方法 | |
CN104537045A (zh) | 一种基于分布式系统的业务分配方法及装置 | |
CN106657182B (zh) | 云端文件处理方法和装置 | |
CN104361057A (zh) | 一种上传多媒体文件的方法及装置 | |
US9189287B1 (en) | Harnessing idle computing resources in customer premise equipment | |
WO2017096787A1 (zh) | 图片处理方法及装置 | |
CN111294377A (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
US10599440B2 (en) | Method for sharing processing modules between pipelines | |
CN106101710A (zh) | 一种分布式视频转码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150218 |