本发明涉及到通讯技术领域,特别是涉及到一种数据分包上传服务器的方法及装置。
背景技术:
汽车车载系统作为汽车上一种重要的工具,用于实现影音娱乐、卫星定位、语音导航以及汽车安全保护等多种功能,随着科技的进一步发展,通过外部的移动终端与车载系统进行数据传输,用于与汽车车载系统实现远程的通信和控制。现在的外部移动终端在与汽车车载系统进行文件传输时,在文件较大时,传输时间较长,会使得文件传输不及时。
技术实现要素:
本发明的主要目的为提供一种数据分包上传服务器的方法及装置,旨在通过分包上传文件,减小传输时间。
本发明提出一种数据分包上传服务器的方法,包括:
接收将文件分包上传至服务器的指令;
根据所述指令将待上传文件分成多个数据包;
将多个所述数据包按照预设规则分配至多个线程以上传至服务器。
进一步地,所述根据所述指令将待上传文件分成多个数据包的方法,包括:
将文件解析成多个字节数组;
将多个所述字节数组按预设的线程数量生成对应所述线程数量的所述数据包,其中,预设的线程数量为多个。
进一步地,所述将多个所述数据包按照预设规则传输至多个线程以上传至服务器的步骤,包括:
将多个所述数据包分别一一对应分配至多个所述线程;
监测每一所述线程是否分配有所述数据包;
若每一所述线程均分配有所述数据包,则同时启动各线程以上传所述数据包至服务器。
进一步地,所述接收将文件分包上传至服务器的指令的步骤之前,包括:
分析所述待上传文件的数据量大小;
判断所述待上传文件的数据量大小是否大于预设数据量;
若大于,则触发将文件分包上传至服务器的指令。
进一步地,所述接收将文件分包上传至服务器的指令的步骤之前,包括:
分析所述待上传文件的类型;
判断所述待上传文件的类型是否与预设的文件类型相符;
若相符,则触发将文件分包上传至服务器的指令。
本发明还提出一种数据分包上传服务器的装置,包括:
接收单元,用于接收将文件分包上传至服务器的指令;
拆分单元,用于根据所述指令将待上传文件分成多个数据包
执行单元,用于将多个所述数据包按照预设规则分配至多个线程以上传至服务器。
进一步地,所述拆分单元包括:
解析模块,将文件解析成多个字节数组;
生成模块,将多个所述字节数组按预设的线程数量生成对应所述线程数量的所述数据包,其中,预设的线程数量为多个。
进一步地,所述执行单元包括:
分配模块,用于将多个所述数据包分别一一对应分配至多个所述线程;
监测模块,用于监测每一所述线程是否分配有所述数据包;
执行模块,用于若每一所述线程均分配有所述数据包,则同时启动各线程以上传所述数据包至服务器。
进一步地,所述数据分包上传服务器的装置还包括:
第一分析单元,用于分析所述待上传文件的数据量大小;
第一判断单元,用于判断所述待上传文件的数据量是否大于预设的数据量值;
第一触发单元,用于若所述待上传文件的数据量大于预设数据量,则触发将文件分包上传至服务器的指令。
进一步地,所述数据分包上传服务器的装置还包括:
第二分析单元,用于分析所述待上传文件的类型;
第二判断单元,用于判断所述待上传文件是否与预设文件类型相符;
第二触发单元,用于若所述待上传文件与预设文件类型相符,则触发将文件分包上传至服务器的指令。
本发明的有益效果为:接收将文件分包上传至服务器的指令;根据所述指令将待上传文件分成多个数据包;将多个所述数据包按照预设规则分配至多个线程以上传至服务器,其中预设的规则为每个线程只传输一个数据包,与现有的通过单线程传输文件相比,在文件较大时,通过多个线程来分包上传文件,能极大的减小传输时间。服务器在接收到多个数据包之后,将多个数据包重新整合为文件,便于将文件下发至终端设备的第三app中。
附图说明
图1为本发明一实施例中的数据分包上传服务器的方法的步骤示意图;
图2为本发明另一实施例中的数据分包上传服务器的方法的步骤示意图;
图3为本发明又一实施例中的数据分包上传服务器的方法的步骤示意图;
图4为本发明一实施例中的数据分包上传服务器的装置的结构框图;
图5为本发明另一实施例中的数据分包上传服务器的装置的结构框图;
图6为本发明又一实施例中的数据分包上传服务器的装置的结构框图;
图7为本发明一实施例中的数据分包上传服务器的装置的拆分单元的结构框图;
图8为本发明一实施例中的数据分包上传服务器的装置的执行单元的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明一实施例的数据分包上传服务器的方法,包括:
步骤s1,接收将文件分包上传至服务器的指令;
步骤s2,根据所述指令将待上传文件分成多个数据包;
步骤s3,将多个所述数据包按照预设规则分配至多个线程以上传至服务器。
在步骤s1中,汽车车载系统作为实现影音娱乐、卫星定位、语音导航以及汽车安全保护等多种功能的工具,其还能与外部移动终端进行连接实现数据传输功能,在外部的移动终端上安装与服务器对应的第三方app,通过与第三方app对应的服务器来实现与汽车车载系统实现数据传输。当需要将文件从车载系统中通过分包上传的方式上传至服务器时,需要在车载系统中输入将文件分包上传至服务器的指令。本发明所述的“多个”指的是两个或两个以上。
在步骤s2中,车载系统在接收到将文件分包上传至服务器的指令之后,将文件分成多个数据包,每个数据包为待上传文件的部分数据。
在步骤s3中,在得到多个数据包后,通过多个线程按照预设规则将多个数据包上传至服务器,其中预设的规则为每个线程只传输一个数据包,与现有的通过单线程传输文件相比,在文件较大时,通过多个线程来分包上传文件,能极大的减小传输时间。服务器在接收到多个数据包之后,将多个数据包重新整合为文件,便于将文件下发至终端设备的第三app中。
参照图2,另一实施例中的数据分包上传服务器的方法,所述接收将文件分包上传至服务器的指令的步骤s1之前,包括:
步骤s4,分析所述待上传文件的数据量大小;
步骤s5,判断所述待上传文件的数据量大小是否大于预设数据量
步骤s6,若大于,则触发将文件分包上传至服务器的指令。
在步骤s4中,当车载系统需要将文件上传至服务器时,会先分析待上传文件的数据量大小,获取得到待上传文件的数据量大小。
在步骤s5中,车载系统将待上传的文件的数据量大小与预设的数据量值进行比较,其中预设的数据量值为用户根据需要来设定,例如预设的数据量可设置为500mb,车载系统将判断待上传的文件的数据量是否大于预设的数据量值。
在步骤s6中,在判断得到待上传的文件的数据量大于预设的数据量值时,将触发将文件分包上传至服务器的指令,将待上传文件分成多个数据包。一般文件较大时,通过单线程来传输时,需要的时间较长,而通过多个线程来上传多个数据包,能减小上传时间。在判断得到待上传文件的数据量不是大于预设的数据量值时,则通过单线程的方式将文件上传至服务器。
参照图3,本发明又一实施例中的数据分包上传服务器的方法,所述接收将文件分包上传至服务器的指令的步骤s1之前,包括:
步骤s7,分析所述待上传文件的类型;
步骤s8,判断所述待上传文件的类型是否与预设的文件类型相符;
步骤s9,若相符,则触发将文件分包上传至服务器的指令。
在步骤s7中,当车载系统需要将文件上传至服务器时,会先分析待上传文件的文件类型,获取待上传文件的文件类型。
在步骤s8中,车载系统将判断待上传的文件是否为预设的文件类型,其中预设的文件类型为视频文件,一般视频文化的数据量较大,在通过单一线程来传输时,需要的时间较长,而图片文件等类型的数据量小,上传时需要的时间少。
在步骤s9中,在判断得到待上传的文件类型为视频文件时,将触发将文件分包上传至服务器的指令,将待上传的文件分成多个数据包,通过多个线程来上传多个数据包,减小上传时间。在判断得到待上传文件不是视频文件时,则通过单线程的方式将文件上传至服务器。
本实施例中的数据分包上传服务器的方法,所述根据所述指令将待上传文件分成多个数据包的方法,包括:
将文件解析成多个字节数组;
将多个所述字节数组按预设的线程数量生成对应所述线程数量的所述数据包,其中,预设的线程数量为多个。
在将文件分成多个数据包时,先将文件解析成个数非常多的字节数组,并根据线程的数量,将得到的所有字节数组生成与上述线程的数量对应的数据包,便于通过多个线程将多个数据包上传至服务器。
本实施例中的所述将多个所述数据包按照预设规则传输至多个线程以上传至服务器的步骤s2,包括:
步骤s21,将多个所述数据包分别一一对应分配至多个所述线程;
步骤s22,监测每一所述线程是否分配有所述数据包;
步骤s23,若每一所述线程均分配有所述数据包,则同时启动各线程以上传所述数据包至服务器。
在步骤s21中,得到的所有字节数组分成与上述多个线程的数量对应的多个数据包后,将多个数据包分别一一对应分配至多个所述线程,即每个线程分配一个数据包,当然也可以每个线程分配两个数据包,每个线程上传数据包的数量可根据线程的数量进行平均分配。
在步骤s22中,服务器监测每个线程是否分配有一个或两个数据包。
在步骤s23中,当服务器监测到每个线程均分配有一个或两个数据包时,将同时启动各线程以上传对应的数据包至服务器,在任意一个线程的数据上传完毕后,将等待其他线程的数据也上传完毕再接收数据包,方便服务器将多个数据包统一整合,其中,上传过程以字节的方式进行。
在其它实施例中,也可以无需同时启动各线程,具体地,车载系统监测是否有数据包分配至一线程,当有数据包分配至一线程时立即启动该线程上传该数据包,不必待所有数据包分配至对应线程时再同时启动线程上传。
参照图4,本发明实施例中还提出的数据分包上传服务器的装置,其应用于车载系统,本发明数据分包上传服务器的装置包括:
接收单元10,用于接收将文件分包上传至服务器的指令;
拆分单元20,用于根据所述指令将待上传文件分成多个数据包
执行单元30,用于将多个所述数据包按照预设规则分配至多个线程以上传至服务器。
汽车车载系统作为实现影音娱乐、卫星定位、语音导航以及汽车安全保护等多种功能的工具,其还能与外部移动终端进行连接实现数据传输功能,在外部的移动终端上安装与服务器对应的第三方app,通过与第三方app对应的服务器来实现与汽车车载系统实现数据传输。当需要将文件从车载系统中通过分包上传的方式上传至服务器时,需要在车载系统中输入将文件分包上传至服务器的指令,接收单元10用于接收将文件分包上传至服务器的指令。本发明所述的“多个”指的是两个或两个以上。
车载系统在接收到将文件分包上传至服务器的指令之后,拆分单元20将文件分成多个数据包,每个数据包为待上传文件的部分数据。
在得到多个数据包后,执行单元30通过多个线程按照预设规则将多个数据包上传至服务器,其中预设的规则为每个线程只传输一个数据包,与现有的通过单一线程传输文件相比,在文件较大时,通过多个线程来分包上传文件,能极大的减小传输时间。服务器在接收到多个数据包之后,将多个数据包重新整合为文件,便于将文件下发至终端设备的第三app中
参照图5,另一实施例中的数据分包上传服务器的装置,还包括:
第一分析单元40,用于分析所述待上传文件的数据量大小;
第一判断单元50,用于判断所述待上传文件的数据量是否大于预设的数据量值;
第一触发单元60,用于若所述待上传文件的数据量大于预设数据量,则触发将文件分包上传至服务器的指令。
当车载系统需要将文件上传至服务器时,第一分析单元40分析待上传文件的数据量大小,获取得到待上传文件的数据量大小。
车载系统将待上传的文件的数据量大小与预设的数据量值进行比较,其中预设的数据量值为用户根据需要来设定,例如预设的数据量可设置为500mb,第一判断单元50判断待上传的文件的数据量是否大于预设的数据量值。
在判断得到待上传的文件的数据量大于预设的数据量值时,第一触发单元60将触发将文件分包上传至服务器的指令,将待上传文件分成多个数据包。一般文件较大时,通过单线程来传输时,需要的时间较长,而通过多个线程来上传多个数据包,能减小上传时间。在判断得到待上传文件的数据量不是大于预设的数据量值时,则通过单线程的方式将文件上传至服务器。
参照图6,本发明另一实施例中的数据分包上传服务器的装置,还包括:
第二分析单元70,用于分析所述待上传文件的类型;
第二判断单元80,用于判断所述待上传文件是否与预设文件类型相符;
第二触发单元90,用于若所述待上传文件与预设文件类型相符,则触发将文件分包上传至服务器的指令。
当车载系统需要将文件上传至服务器时,第二分析单元70分析待上传文件的文件类型,获取待上传文件的文件类型。
第二判断单元80判断待上传的文件是否为预设的文件类型,其中预设的文件类型为视频文件,一般视频文化的数据量较大,在通过单线程来传输时,需要的时间较长,而图片文件等类型的数据量小,上传时需要的时间少。
在判断得到待上传的文件类型为视频文件时,第二触发单元90将触发将文件分包上传至服务器的指令,将待上传的文件分成多个数据包,通过多个线程来上传多个数据包,减小上传时间。在判断得到待上传文件不是视频文件时,则通过单线程的方式将文件上传至服务器。
参照图7,本实施例中的数据分包上传服务器的装置,所述拆分单元20包括:
解析模块210,将文件解析成多个字节数组;
生成模块220,将多个所述字节数组按预设的线程数量生成对应所述线程数量的所述数据包,其中,预设的线程数量为多个。
在将文件分成多个数据包时,解析模块210先将文件解析成个数非常多的字节数组,生成模块220根据线程的数量,将得到的所有字节数组生成与上述线程的数量对应的数据包,便于通过多个线程将多个数据包上传至服务器。
参照图8,本实施例中的数据分包上传服务器的装置,所述执行单元包括:
分配模块310,用于将多个所述数据包分别一一对应分配至多个所述线程;
监测模块320,用于监测每一所述线程是否分配有所述数据包;
执行模块330,用于若每一所述线程均分配有所述数据包,则同时启动各线程以上传所述数据包至服务器。
得到的所有字节数组分成与上述多个线程的数量对应的多个数据包后,分配模块310将多个数据包分别一一对应分配至多个所述线程,即每个线程分配一个数据包,当然也可以每个线程分配两个数据包,每个线程数据包的数量可根据线程的数量进行平均分配。
监测模块320监测每个线程是否分配有一个或两个数据包。
当服务器监测到每个线程均分配有一个或两个数据包时,执行模块330将同时启动各线程以上传对应的数据包至服务器,在任意一个线程的数据上传完毕后,将等待其他线程的数据也上传完毕再接收数据包,方便服务器将多个数据包统一整合,其中,上传过程以字节的方式进行。
在其它实施例中,也可以无需同时启动各线程,具体地,执行单元包括监测模块320和执行模块330,执行模块330用于监测是否有数据包分配至一线程,执行模块330用于当有数据包分配至一线程时立即启动该线程上传该数据包,不必待所有数据包分配至对应线程时再同时启动线程上传。
综上所述,本发明的有益效果为:接收将文件分包上传至服务器的指令;根据所述指令将待上传文件分成多个数据包;将多个所述数据包按照预设规则分配至多个线程以上传至服务器,其中预设的规则为每个线程只传输一个数据包,与现有的通过单线程传输文件相比,在文件较大时,通过多个线程来分包上传文件,能极大的减小传输时间。服务器在接收到多个数据包之后,将多个数据包重新整合为文件,便于将文件下发至终端设备的第三app中。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。