CN112398916B - 基于http协议的文件传输方法及装置 - Google Patents
基于http协议的文件传输方法及装置 Download PDFInfo
- Publication number
- CN112398916B CN112398916B CN202011182322.4A CN202011182322A CN112398916B CN 112398916 B CN112398916 B CN 112398916B CN 202011182322 A CN202011182322 A CN 202011182322A CN 112398916 B CN112398916 B CN 112398916B
- Authority
- CN
- China
- Prior art keywords
- file
- data block
- message
- data
- transmission
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 35
- 238000012546 transfer Methods 0.000 claims abstract description 12
- 238000012795 verification Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000005538 encapsulation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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]
-
- 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
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开的实施例提供了基于HTTP协议的文件传输方法、装置、设备和计算机可读存储介质。该方法在文件发送端获取待传输的文件,对文件进行拆分,得到多个数据块;将包含文件信息的请求消息发送至文件接收端;待接收到文件接收端发送的响应后,根据预设传输协议将消息发送至文件接收端。相应的在文件接收端接收文件发送端发送的请求消息,向文件发送端返回响应;接收文件发送端在接收到响应后发送的消息;根据预设传输协议获取数据块并进行存储;将多个数据块合并为文件。以此方式,可以不受系统权限和端口的限制进行文件的传输,便于大文件的传输,采用私有的预设传输协议进行文件传输,更加安全,防止文件在传输过程中被窃听。
Description
技术领域
本公开的实施例一般涉及计算机技术领域,并且更具体地,涉及基于HTTP协议的文件传输方法、装置、设备和计算机可读存储介质。
背景技术
在一些特殊的应用场合,如工控机、早期的服务器或者一些安全敏感的应用场景下,这里统称为受限客户端,通过网络进行传输大文件(一般指100M以上的文件)时往往比较困难。这是因为,一方面大文件不能够在网络传输时具有续传功能而传输失败的问题,常见的数据传输协议包括:CIFS、AFP、NFS、FTP和SSH等,这些公开的传输方式一般在传输断开以后,多无法继续续传,不适合大文件的传输。另一方面,由于系统权限或端口的限制而造成的数据难以传出的问题,需要发送方安装某些服务,或者需要一些管理员权限,如SMB无法在Linux平台上使用,而Windows下不易实现SSH通信。
并且,这些公开的传输方式由于协议公开透明,所以在网络传输时被监听后,通过对协议的分析,易于对数据进行窃取和重组。
发明内容
根据本公开的实施例,提供了一种基于HTTP协议的文件传输方案,能够实现受限条件下的大文件安全稳定的网络传输。
在本公开的第一方面,提供了一种基于HTTP协议的文件传输方法,应用于文件发送端,该方法包括:
获取待传输的文件,对所述文件进行拆分,得到多个数据块;
将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装;
将封装所述数据块的消息发送至文件接收端;其中,
所述预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述预设传输协议定义的字段中:
IP字段为文件发送端的IP地址;
TaskID字段为所述消息的传输任务编号;
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5;
BlockId字段为数据块在文件中的索引;
MD5字段为数据块的MD5的值;
Len字段为数据块的大小;
Data字段为文件经拆分得到的数据块。
在本公开的第二方面,提供了一种基于HTTP协议的文件传输方法,应用于文件接收端,该方法包括:
接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息;
根据所述预设传输协议获取所述消息中封装的数据块并进行存储;
待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
对所述请求消息进行解析,根据所述文件信息建立缓存。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对所述请求消息进行解析,根据所述文件信息建立缓存,还包括:
根据文件信息,对应所述文件拆分得到的多个数据块建立数据块文件,用于存储对应的数据块。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述待所述多个数据块接收完整后,将所述多个数据块合并为所述文件之前,包括:
对数据块进行验证,根据验证结果向文件发送端返回相应指令;
所述验证结果包括数据块接收正常、数据块接收非正常。
在本公开的第三方面,提供了一种基于HTTP协议的文件传输装置,应用于文件发送端,该装置包括:
文件拆分模块,用于获取待传输的文件,对所述文件进行拆分,得到多个数据块;
消息请求模块,用于将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息封装模块,用于待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装;
消息发送模块,用于将封装所述数据块的消息发送至文件接收端。
在本公开的第四方面,提供了一种基于HTTP协议的文件传输装置,应用于文件接收端,该装置包括:
消息响应模块,用于接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息接收模块,用于接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息;
数据块获取模块,用于根据所述预设传输协议获取所述消息中封装的数据块并进行存储;
数据块合并模块,用于待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件。
在本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
本发明的基于HTTP协议的文件传输方法及装置,先通过HTTP这种公开通用的网页传输协议建立文件发送端与接收端之间的连接,再通过预设传输协议将分装好的数据块发送至接收端。由于HTTP协议建立了文件发送端向指定的接收端单向传输文件的连接,传输文件时采用私有的预设传输协议,因而在如工控机、早期的服务器或者一些安全敏感的应用场景下,或者系统权限和端口不同的情况下,能够不受系统权限和端口的限制进行文件的传输。采用私有的预设传输协议进行文件传输,更加安全,防止文件在传输过程中被窃听。
本发明将大文件拆分为多个数据块,便于大文件的传输。通过文件接收端的验证,确认接收状态非正常的数据块,要求文件发送端将问题数据块重新发送,从而实现断点续传。
并且,文件接收端在接收数据块之前,先根据文件信息建立缓存,并预先建立数据块文件,提高数据传输效率,同时也保证接收端磁盘空间足够。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的文件发送端与文件接收端进行交互的流程图;
图2示出了根据本公开的实施例的基于HTTP协议的文件传输方法在文件发送端的流程图;
图3示出了根据本公开的实施例的基于HTTP协议的文件传输方法在文件接收端的流程图;
图4示出了根据本公开的实施例的基于HTTP协议的文件传输装置的方框图;
图5示出了根据本公开的实施例的基于HTTP协议的文件传输装置的方框图;
图6示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1示出了根据本公开的实施例的文件发送端与文件接收端进行交互的流程图,如图1所示,文件发送端基于HTTP协议向文件接收端发送请求消息,此时请求消息的内容为文件信息,文件信息包括文件名称,还可以包括数据块索引、数据块数量、每块数据块大小等。文件接收端解析请求消息,并根据请求消息中的文件信息进行准备,建立用于接收并存储待发送文件的缓存区,缓存区按文件名称、数据块数量建立相应的文件夹。文件接收端准备完成后,向文件发送端返回响应,告知文件发送端是否可以进行文件传输。文件发送端接收到文件接收端基于请求消息所发送的响应后,基于响应内容判断是否进行文件发送。当文件发送端可以进行文件发送时,根据预设传输协议将文件拆分出的数据块进行消息封装,将文件分块发送至文件接收端。文件接收端接收到部分或全部数据块后,对数据块进行验证,根据验证结果向文件发送端返回相应指令,文件发送端读取返回的指令并执行对应操作。若验证结果正常,则返回传输结束指令;若验证结果非正常,则根据返回的索引找到问题数据块,再次进行发送。通过文件发送端与文件接收端之间的交互,使得文件传输不受系统权限和端口的限制。
图2示出了根据本公开的实施例的基于HTTP协议的文件传输方法在文件发送端的流程图,本公开的文件传输方法在文件发送端具有如下步骤:
步骤S202,获取待传输的文件,对所述文件进行拆分,得到多个数据块。
具体的,待传输的文件经拆分后得到存储有文件数据的数据块,每个数据块为一个存储单元,多个数据块存储的数据合并后能够得到完整的原始文件,并且将每个数据块作为一个传输单元进行传输。
在本实施例中,一个文件下所拆分的数据块可以规定为大小一致,也可以大小不一致,每个数据块最长为65536个字节。
步骤S204,将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小。
文件发送端获取文件接收端的IP地址和端口号,根据文件接收端的IP地址和端口号通过HTTP协议的形式向文件接收端发送连接请求,文件接收端响应文件发送端的连接请求,从而建立连接用于文件传输。建立连接后,文件发送端通过HTTP协议的形式发送请求消息至该IP地址和端口号的文件接收端,告知文件接收端需要进行文件传输任务,并且,通过请求消息告知文件接收端将要发送文件的文件信息,文件信息包括文件名称,还可以包括数据块索引、数据块数量、每块数据块大小等。
步骤S206,待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装。
文件发送端在接收到文件接收端基于请求消息所发送的响应消息后,根据响应的内容执行对应的操作,例如,响应为可以发送,则进行消息分装并待分块发送;响应为错误消息,则对错误进行处理。
在本实施例中,封装得到的消息包括对文件拆分出的数据块进行封装的消息,和未包含数据块的消息。未包含数据块的消息作为命令进行发送。
并且,预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data。
具体的,预设传输协议定义的字段中IP字段为文件发送端的IP地址,或者文件发送端的IP地址和端口号,设定其大小为4个字节。
TaskID字段为所述消息的传输任务编号,在本实施例中,用于为数据块传输的任务进行编号,设定其大小为4个字节。
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5,设定其大小为1个字节。例如,0×10表示告知文件接收端开始文件传输,0×11表示当前进行数据块传输,0×12表示传输结束,0×13表示对当前文件或数据块的MD5验证命令,在其他实施例中,也可以是其他校验方式,CMD为0×13命令可在文件传输任务的任何阶段发送至文件接收端。
BlockId字段为数据块在文件中的索引,规定了在文件中每个数据块的排序方式,设定其大小为2个字节。
MD5字段为数据块的MD5的值,用于确保信息传输完整一致,设定其大小为16个字节,在其他实施例中,该字段也可以是其他校验方式的验证码。
Len字段为数据块的大小,设定其大小为2个字节。
Data字段为文件经拆分得到的数据块,Data字段不定长,具体长度由Len字段确定。在消息为请求消息时,Data字段中存放文件信息;在消息作为命令进行发送时,Data字段为空或者存放文件的信息,例如文件名称、拆分得到的多个数据块的编号、文件索引等。
文件发送端根据以上对预设传输协议的定义,获取字段指定的内容,进行封装。在一些实施例中,对数据块进行加密,加密类型依据用户的来使用现有的加密算法例如DES、3DES、RC4、RSA、DSA等。
在一些实施例中,文件发送端记录文件接收端发送的响应,用于核对文件传输任务。
步骤S208,将封装所述数据块的消息发送至文件接收端。
文件发送端通过HTTP协议的形式访问文件接收端的指定网络服务接口,根据预设传输协议指定的数据格式发送上述步骤中得到的分块的消息和作为命令的消息。
在一些实施例中,经由HTTPS通道访问文件接收端来进行消息发送,通过SSL(安全套接字层)或TLS(传输层安全)协议提供加密处理数据、验证文件接收端的身份以及数据完整性保护,防止传输的内容被中间人窃听或者篡改。
在本实施例中,文件发送端还包括以下步骤:
文件发送端接收文件接收端返回的验证结果,执行对应操作。
若验证结果正常,则返回传输结束指令;若验证结果非正常,则根据文件接收端返回的错误种类和指令对问题数据块进行处理,根据返回的索引找到问题数据块,再次进行步骤S208。这样,大文件在传输时若中断,不用重新传输,只用将问题数据块进行重新发送,从而在文件传输过程中能够实现断点续传,便于大文件的传输。在一些实施例中,文件发送端与文件接收端为单向访问方式,文件接收端无法访问文件发送端,因此在对问题数据块重新发送时,是在文件发送端完成全部发送任务后,通过访问文件接收端另外提供的接口来实现。
图3示出了根据本公开的实施例的基于HTTP协议的文件传输方法在文件接收端的流程图,本公开的文件传输方法在文件接收端具有如下步骤:
步骤S302,接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小。
在本实施例中,文件接收端在接收到请求消息后,对请求消息进行解析,文件接收端根据文件信息建立缓存,根据请求消息进行文件接收准备工作。具体的,在数据开始接收前,文件接收端根据文件信息,用于接收存储当前文件的缓存区以文件发送端IP地址和文件名的形式建立,缓存区下对应所述文件拆分得到的多个数据块建立数据块文件,用于存储对应的数据块,数据块文件以文件发送端IP地址、文件名和数据块索引的形式建立,以0填充数据块文件。提高数据传输效率,也保证磁盘空间足够。例如,在一些实施例中,数据块大小固定为64kB,将一文件拆分为多个64kB的数据块和一个不固定大小但小于64kB的数据块。预先建立的数据块文件数量与数据块的数量一致,即可估算接收的文件大小,若磁盘空间不足,则发出提示或对磁盘空间进行清理。
进一步地,文件接收端向文件发送端返回响应,响应的内容,如请求的文件信息、错误消息、或者其它信息,由文件发送端确认并执行对应操作。
步骤S304,接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息。
步骤S306,根据所述预设传输协议获取所述消息中封装的数据块并进行存储。
文件接收端将封装有数据块的消息进行解封装,按照消息中CMD的控制命令对数据块进行处理,判断当前数据块的传输状态为开始传输、传输结束、传输中断或者断点续传等,并执行相应的命令。存储数据块时,将数据块存储到预先建立的数据块文件中,在本实施例中,数据块按索引存储到对应的数据块文件中,在其他一些实施例中,数据块随机存入空的数据块文件中,每个数据块文件仅存有一个数据块,若数据块文件已存有数据,则再寻找空的数据块文件存入。
例如,CMD为0×10,表示告知文件接收端开始文件传输。CMD为0×11,表示当前进行数据块传输,将数据块存储到预先建立的对应数据块文件中。CMD为0×12,表示传输结束,文件接收端结束对该文件的接收,文件发送端结束对该文件的发送。CMD为0×14,表示传输中断,暂停对该文件的接收。
数据块接收成功后,根据BlockId字段确认索引中未接收的数据块,继续搜寻未接收的数据块,根据BlockId和/或TaskID确定数据块的索引完整和/或任务编号完整时,则文件下的全部数据块接收完整,还可以根据数据块文件是否都不为0来进一步确认文件接收完整。在一些实施例中,当前文件下的全部数据块接收完整后,向文件发送端发送接收完整的待确认信息。
步骤S308,待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件。
当前文件下的全部或部分数据块接收后,文件发送端发送CMD为0×13的消息,要求文件接收端对数据块进行验证,在本实施例中,对数据块进行MD5验证,来检查数据是否正确。
数据块验证结果包括数据块接收正常和数据块接收非正常。验证结果为数据块接收正常时,向文件发送端返回文件传输结束指令。数据块接收非正常的验证结果包括数据有误、传输中断、不具有权限中的至少一个,文件接收端将问题数据块的索引及错误种类发送至文件发送端,由文件发送端对问题数据块进行处理。
进一步地,文件下的多个数据块接收完整后,查找各个数据块在内存或硬盘上的存储位置。根据BlockId字段所规定的数据块在文件中的索引,查找数据块在文件中的位置,将数据块按照索引进行合并。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图4、5示出了根据本公开的实施例的基于HTTP协议的文件传输装置400、500的方框图。如图4所示,装置400包括:
文件拆分模块402,用于获取待传输的文件,对所述文件进行拆分,得到多个数据块;
消息请求模块404,用于将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息封装模块406,用于待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装;
消息发送模块408,用于将封装所述数据块的消息发送至文件接收端。
如图5所示,装置500包括:
消息响应模块502,用于接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息接收模块504,用于接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息;
数据块获取模块506,用于根据所述预设传输协议获取所述消息中封装的数据块并进行存储;
数据块合并模块508,用于待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6示出了可以用来实施本公开的实施例的电子设备600的示意性框图。设备600可以用于实现图2、3的方法。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM603中,还可以存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的各个方法和处理。例如,在一些实施例中,上文描述的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上文描述的方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (9)
1.一种基于HTTP协议的文件传输方法,应用于文件发送端,其特征在于,包括:
获取待传输的文件,对所述文件进行拆分,得到多个数据块;
将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装;
将封装所述数据块的消息发送至文件接收端,使文件接收端按照消息中CMD的控制命令对数据块进行处理;其中,
所述预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data,
所述预设传输协议定义的字段中:
IP字段为文件发送端的IP地址;
TaskID字段为所述消息的传输任务编号;
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5;
BlockId字段为数据块在文件中的索引;
MD5字段为数据块的MD5的值;
Len字段为数据块的大小;
Data字段为文件经拆分得到的数据块。
2.一种基于HTTP协议的文件传输方法,应用于文件接收端,其特征在于,包括:
接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息;
根据预设传输协议获取所述消息中封装的数据块并进行存储,按照消息中CMD的控制命令对数据块进行处理;
待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件,其中,
所述预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data,
所述预设传输协议定义的字段中:
IP字段为文件发送端的IP地址;
TaskID字段为所述消息的传输任务编号;
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5;
BlockId字段为数据块在文件中的索引;
MD5字段为数据块的MD5的值;
Len字段为数据块的大小;
Data字段为文件经拆分得到的数据块。
3.根据权利要求2所述的文件传输方法,其特征在于,所述方法还包括:
对所述请求消息进行解析,根据所述文件信息建立缓存。
4.根据权利要求3所述的文件传输方法,其特征在于,所述对所述请求消息进行解析,根据所述文件信息建立缓存,还包括:
根据文件信息,对应所述文件拆分得到的多个数据块建立数据块文件,用于存储对应的数据块。
5.根据权利要求2所述的文件传输方法,其特征在于,待多个数据块接收完整后,将所述多个数据块合并为所述文件,还包括:
对数据块进行验证,根据验证结果向文件发送端返回相应指令;
所述验证结果包括数据块接收正常、数据块接收非正常。
6.一种基于HTTP协议的文件传输装置,其特征在于,应用于文件发送端,包括:
文件拆分模块,用于获取待传输的文件,对所述文件进行拆分,得到多个数据块;
消息请求模块,用于将包含文件信息的请求消息发送至文件接收端,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息封装模块,用于待接收到文件接收端发送的响应消息后,根据预设传输协议对所述多个数据块分别进行消息封装;
消息发送模块,用于将封装所述数据块的消息发送至文件接收端,使文件接收端按照消息中CMD的控制命令对数据块进行处理,其中,
所述预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data,
所述预设传输协议定义的字段中:
IP字段为文件发送端的IP地址;
TaskID字段为所述消息的传输任务编号;
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5;
BlockId字段为数据块在文件中的索引;
MD5字段为数据块的MD5的值;
Len字段为数据块的大小;
Data字段为文件经拆分得到的数据块。
7.一种基于HTTP协议的文件传输装置,其特征在于,应用于文件接收端,包括:
消息响应模块,用于接收文件发送端发送的请求消息,向文件发送端返回响应消息,所述请求消息包含有文件信息,所述文件信息包括所述文件的文件名称、数据块索引、数据块数量、每块数据块大小;
消息接收模块,用于接收文件发送端在接收到所述响应消息后发送的封装所述数据块的消息;
数据块获取模块,用于根据预设传输协议获取所述消息中封装的数据块并进行存储,按照消息中CMD的控制命令对数据块进行处理;
数据块合并模块,用于待所述文件对应的数据块接收完整后,将所述数据块合并为所述文件,其中,
所述预设传输协议定义了以下字段,包括:IP、TaskID、CMD、BlockId、MD5、Len、Data,
所述预设传输协议定义的字段中:
IP字段为文件发送端的IP地址;
TaskID字段为所述消息的传输任务编号;
CMD字段为控制命令,包括指定所述消息开始传输、文件信息、断点续传、传输终止、MD5;
BlockId字段为数据块在文件中的索引;
MD5字段为数据块的MD5的值;
Len字段为数据块的大小;
Data字段为文件经拆分得到的数据块。
8.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011182322.4A CN112398916B (zh) | 2020-10-29 | 2020-10-29 | 基于http协议的文件传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011182322.4A CN112398916B (zh) | 2020-10-29 | 2020-10-29 | 基于http协议的文件传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112398916A CN112398916A (zh) | 2021-02-23 |
CN112398916B true CN112398916B (zh) | 2024-02-02 |
Family
ID=74597400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011182322.4A Active CN112398916B (zh) | 2020-10-29 | 2020-10-29 | 基于http协议的文件传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112398916B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064857A (zh) * | 2021-03-17 | 2021-07-02 | 歌尔科技有限公司 | 一种文件传输控制方法、设备及介质 |
CN113347245B (zh) * | 2021-05-31 | 2022-05-20 | 广东轩辕网络科技股份有限公司 | 一种基于消息队列的文件分片断点传输方法及装置 |
CN113472874A (zh) * | 2021-06-28 | 2021-10-01 | 北京明略软件系统有限公司 | 文件并发传输方法、系统、存储介质及电子设备 |
CN113542264B (zh) * | 2021-07-13 | 2022-08-26 | 杭州安恒信息技术股份有限公司 | 一种文件传输控制方法、装置、设备及可读存储介质 |
CN114866319B (zh) * | 2022-05-05 | 2024-03-26 | 江苏保旺达软件技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN115277594A (zh) * | 2022-07-18 | 2022-11-01 | 浪潮软件股份有限公司 | 一种基于http加速文件上传的方法及系统 |
CN115987975A (zh) * | 2022-12-30 | 2023-04-18 | 深圳市章江科技有限公司 | 文件传输方法、系统及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100230A (zh) * | 2015-07-09 | 2015-11-25 | 无锡天脉聚源传媒科技有限公司 | 一种文件传输方法和装置 |
CN105897825A (zh) * | 2015-11-20 | 2016-08-24 | 乐视云计算有限公司 | 异步传输文件的方法及系统 |
CN111147597A (zh) * | 2019-12-30 | 2020-05-12 | 深圳移航通信技术有限公司 | 文件传输方法、终端、电子设备及存储介质 |
CN111314480A (zh) * | 2020-02-26 | 2020-06-19 | 烟台海颐软件股份有限公司 | 负载自适应跨平台文件传输协议及其分布式服务实现方法 |
CN111783123A (zh) * | 2020-07-03 | 2020-10-16 | 上海明略人工智能(集团)有限公司 | 文件处理方法、装置、设备及存储介质 |
-
2020
- 2020-10-29 CN CN202011182322.4A patent/CN112398916B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100230A (zh) * | 2015-07-09 | 2015-11-25 | 无锡天脉聚源传媒科技有限公司 | 一种文件传输方法和装置 |
CN105897825A (zh) * | 2015-11-20 | 2016-08-24 | 乐视云计算有限公司 | 异步传输文件的方法及系统 |
CN111147597A (zh) * | 2019-12-30 | 2020-05-12 | 深圳移航通信技术有限公司 | 文件传输方法、终端、电子设备及存储介质 |
CN111314480A (zh) * | 2020-02-26 | 2020-06-19 | 烟台海颐软件股份有限公司 | 负载自适应跨平台文件传输协议及其分布式服务实现方法 |
CN111783123A (zh) * | 2020-07-03 | 2020-10-16 | 上海明略人工智能(集团)有限公司 | 文件处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112398916A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112398916B (zh) | 基于http协议的文件传输方法及装置 | |
CN112351086B (zh) | 文件传输方法、装置、设备和计算机可读存储介质 | |
CN115086306B (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN110557255A (zh) | 一种证书管理的方法和装置 | |
CN113141365B (zh) | 分布式微服务数据传输的方法、装置、系统和电子设备 | |
CN109818910A (zh) | 一种数据传输方法、装置和介质 | |
CN112468511B (zh) | 文件传输方法和装置 | |
CN109729000B (zh) | 一种即时通信方法及装置 | |
EP3819802A1 (en) | Data consistency checking method and data uploading/downloading apparatus | |
CN114157649A (zh) | 数据可靠传输方法、装置、计算机设备及存储介质 | |
WO2012163005A1 (zh) | 访问虚拟专用网络的方法、装置以及网关设备 | |
CN112087475B (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN113438256B (zh) | 一种基于双层ssl的数据传输方法、系统和代理服务器 | |
CN109495362B (zh) | 一种接入认证方法及装置 | |
CN112105003B (zh) | 智能门锁的数据同步系统、方法、装置及可读存储介质 | |
CN113259429A (zh) | 会话保持管控方法、装置、计算机设备及介质 | |
CN111988324A (zh) | 一种数据通讯方法、系统、设备及存储介质 | |
CN112217769B (zh) | 基于隧道的数据解密方法、加密方法、装置、设备和介质 | |
KR101971995B1 (ko) | 보안을 위한 보안 소켓 계층 복호화 방법 | |
US20160261719A1 (en) | Information processing system, control program, and control method | |
Narita et al. | Reliable cloud-based robot services | |
US8930564B2 (en) | Communication relay apparatus, data processing system, and communication relay method | |
CN109358875B (zh) | 基于Ubuntu系统的硬件钱包离线升级装置和方法 | |
CN110572818A (zh) | 虚拟sim卡的迁移方法、系统以及计算机可读存储介质 | |
EP3176986A1 (en) | Method, device and system for remote desktop protocol gateway to conduct routing and switching |
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 |