CN110611718A - 文件传输方法、装置、服务器及存储介质 - Google Patents
文件传输方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110611718A CN110611718A CN201910953074.XA CN201910953074A CN110611718A CN 110611718 A CN110611718 A CN 110611718A CN 201910953074 A CN201910953074 A CN 201910953074A CN 110611718 A CN110611718 A CN 110611718A
- Authority
- CN
- China
- Prior art keywords
- file
- terminal
- server
- slice
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000026676 system process Effects 0.000 claims abstract description 71
- 238000012795 verification Methods 0.000 claims abstract description 52
- 238000012546 transfer Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 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/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
本发明公开了一种传输方法、装置、服务器及存储介质,其中该文件传输方法包括通过接收终端发送的文件传输请求,根据所述文件传输请求发送第一状态信号至终端,终端反馈文件参数,再对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,进一步地终端对标传输文件进行切片生成切片文件,接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。本发明技术方案中通过系统进程对处理后的切片文件进行逐步传输,无需将文件全部载入内存,避免占传输时占用大量的内存,同时也提高了文件传输时的效率。
Description
技术领域
本发明涉及互联网领域,尤其涉及文件传输方法、装置、服务器及存储介质。
背景技术
目前Internet已经普及到整个社会,其中Web应用已经成为Internet上最受欢迎的应用之一,Web技术也成为Internet上最重要的技术之一,Web开发也是软件开发的重要组成部分。随着web应用越来越广泛,越来越深入我们的生活,日常对web应用的功能需要也越来越多样化。
使用传统的表单(multipart/form-data)来传输文件,发送数据时需要将文件全部载入内存,这样在传输大文件时会占用大量的内存,甚至完全消耗掉系统的内存,同时效率也低;因此传统的表单传输模式已经不能满足当前的要求。
所以当前web应用存在传输大文件传输占用内存大、效率低的问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供文件传输方法、装置、终端、服务器、系统及存储介质,旨在解决现有技术中web应用存在传输大文件传输占用内存大、效率低的问题。
为实现上述目的,本发明提供一种文件传输方法,所述文件传输方法包括以下步骤:
响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
接收所述文件参数,对所述文件参数进行参数验证;
在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对目标传输文件进行切片生成切片文件;
接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
优选地,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘包括:
接收终端发送的切片文件,通过IO对象将所述切片文件写入缓存空间;
当缓存空间填满后,将缓存空间中的切片文件写入至预设磁盘。
优选地,在接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘之后,所述文件传输方法包括:
获取文件传输进度,将所述文件传输进度反馈至终端,以进行展示。
优选地,所述接收所述文件参数,对所述文件参数进行参数验证包括:
接收所述文件参数,根据所述文件参数判断预设磁盘中的目标位置是否存在文件;
当目标位置中不存在文件时,根据所述文件参数判断用户在预设磁盘中的目标位置是否存在权限,当目标位置存在权限时参数验证通过。
为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行文件传输程序,所述文件传输程序被所述处理器执行时实现如上所述的文件传输方法的步骤。
为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有文件传输程序,所述文件传输程序被处理器执行时实现如上所述的文件传输方法的步骤。
为实现上述目的,本发明还提出一种文件传输装置,所述文件传输装置包括:
接收模块,用于响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
验证模块,用于接收所述文件参数,对所述文件参数进行参数验证;
进程模块,用于在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对标传输文件进行切片生成切片文件;
存储模块,用于接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
为实现上述目的,本发明还提出一种文件传输方法,所述文件传输方法包括以下步骤:
向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
优选地,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘包括:
所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使服务器通过所述IO对象将所述切片文件写入缓存空间。
为实现上述目的,本发明还提出一种文件传输装置,所述文件传输装置包括:
请求模块,用于向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
发送模块,用于响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
传输模块,用于相应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
本发明技术方案中,通过接收终端发送的文件传输请求,根据所述文件传输请求发送第一状态信号至终端,终端反馈文件参数,再对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,进一步地终端对标传输文件进行切片生成切片文件,接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。本发明技术方案中通过系统进程对处理后的切片文件进行逐步传输,无需将文件全部载入内存,避免占传输时占用大量的内存,同时也提高了文件传输时的效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境示意图;
图2为本发明实施例方案涉及的硬件运行环境的服务器结构示意图;
图3为本发明文件传输方法第一实施例的流程示意图;
图4为本发明文件传输方法第二实施例的流程示意图;
图5为图3或图4中步骤S20的细化流程示意图;
图6为本发明文件传输装置第一实施例的功能模块图;
图7为本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图8为本发明文件传输方法第三实施例的流程示意图;
图9为本发明文件传输装置第二实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例方案涉及的硬件运行环境示意图。其中,终端102通过网络和协议与服务器104进行通信连接。本发明实施例的终端102为瘦终端。用户可以通过接入终端102的输入设备发出应用程序的控制指令,终端102将该控制指令发送至服务器104,以使服务器104启动相应的应用程序以执行该控制指令。
图2是本发明实施例方案涉及的硬件运行环境的服务器104的结构示意图。服务器104包括处理器8001,网络接口8004,存储器8003,通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。存储器8003可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器8003可选的还可以是独立于前述处理器8001的存储装置。网络接口8004可以包括标准的有线接口、无线接口(如WI-FI接口)。可选地,服务器104还可以包括有用户接口。用户接口可以包括I/O(Input/Output,输入/输出)接口,例如USB接口,以及视频接口,例如HDMI(High Definition Multimedia Interface,高清多媒体)接口、SDI(serial digital interface,数字分量串行)接口、VGA(VideoGraphics Array,视频图形阵列)接口、以及DVI(Digital Visual Interface,数字视频)接口等。I/O设备以及显示设备可以分别通过I/O接口以及视频接口与服务器104进行连接通信。其中,I/O设备可以是键盘和鼠标等输入设备。本领域技术人员可以理解,图2中示出的服务器结构并不构成对服务器104的限定,还可以是比图示更多或更少的部件。
作为一种计算机存储介质的存储器8003中可以包括操作系统、网络通信模块、以及接入显示程序。
在图2所示的服务器中,网络接口8004主要用于连终端102,与终端102进行数据通信;而处理器8001可以用于调用存储器8003中存储的接入显示程序,并执行以下操作:
响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
接收所述文件参数,对所述文件参数进行参数验证;
在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对目标传输文件进行切片生成切片文件;
接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
优选地,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘包括:
接收终端发送的切片文件,通过IO对象将所述切片文件写入缓存空间;
当缓存空间填满后,将缓存空间中的切片文件写入至预设磁盘。
优选地,在接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘之后,所述文件传输方法包括:
获取文件传输进度,将所述文件传输进度反馈至终端,以进行展示。
优选地,所述接收所述文件参数,对所述文件参数进行参数验证包括:
接收所述文件参数,根据所述文件参数判断预设磁盘中的目标位置是否存在文件;
当目标位置中不存在文件时,根据所述文件参数判断用户在预设磁盘中的目标位置是否存在权限,当目标位置存在权限时参数验证通过。
基于上述硬件结构,提出本发明文件传输方法的实施例。
参照图3,图3为本发明文件传输方法第一实施例的流程示意图。
在第一实施例中,所述文件传输方法包括以下步骤:
步骤S10:响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
本实施例中,在接收文件传输请求后,还对用户身份进行验证。具体地,根据所述文件传输请求对用户身份进行验证,在用户身份验证通过后,发送第一状态信号至终端,以使所述终端发送文件参数;
本实施例中,该终端可以是电脑等智能终端。用户通过电脑上传文件至服务器。
终端先通过web-socket协议向服务器发起文件传输请求,文件传输请求中包括传输任务的参数,例如:将要传输的文件大小、文件在服务器上保存的位置等。web-socket协议为一种在单个TCP连接上进行全双工通信的协议。
值得说明的是,终端通过web-socket协议与服务器指令端口建立连接,向服务器发送传输文件的请求。服务器接受到终端的请求后,将终端的套接字对象到保存连接池中,并为终端分配一个唯一的token,再将token反馈给终端。终端收到服务器端的token后,表示指令通道创建成功。在计算机身份验证中表示令牌(临时)。指令通道用于传输文本数据。
终端连接池是一个hash表(散列表),终端的套接字对象作为元素的value,分配给终端的token作为元素的key。这样就可以实现根据token快速查找到终端的套接字对象。
本实施例中,身份验证之前终端与服务器建立连接,终端将用户ID及密码发给服务器。发送的内容包含有用户ID和密码,服务器会对认证信息的正确性进行验证。如验证通过,第一状态信号至终端,以告知终端。终端收到第一状态信号后将要传输的文件的文件参数发送至服务器。
步骤S20:接收所述文件参数,对所述文件参数进行参数验证;
本实施例中,文件参数包含有文件的保存文件的完整路径、文件大小等等,参数验证包括:用户在目标位置是否有权限;是否有其他用户上传文件至该目标位置;目标位置是否存在文件。
可以理解的是,首先,服务器根据文件参数确定用户在目标位置是否有权限和是否有其他用户上传文件至该目标位置。若用户在目标位置无权限或者他用户在上传文件至该目标位置,则反馈状态信息至终端,终端停止上传文件。
进一步地,服务器在确定目标位置是否存在文件。在目标位置存在文件时,服务器反馈状态信息值终端。对于这种情况,终端存储有预设策略。本实施例中预设策略包括:停止上传、跳过当前文件、覆盖文件、重命名文件及文件续传。
对于上述5种策略,用于根据自己的需求进行选择,输入选择信号,选中策略。当选中停止上传或者跳过当前文件时,终端停止上传文件;当选中覆盖文件、重命名文件或者文件续传时,终端降策略信号发送至服务器。
步骤S30:在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端对标传输文件进行切片生成切片文件;本实施例中采用的守护进程作为系统进程。建立系统进程后服务器还创建一个数据通道,用于传输流数据。
需要说明的是,服务器端的web-socket服务在接收到终端的请求后,分配一个守护进程用于处理该终端的流数据;终端再将文件切片,通过http/https协议发送文件切片的流数据到服务器端,同时与服务器web-socket服务保持正常连接。
步骤S40:接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
该磁盘为服务器内部设置的磁盘。因为终端与服务端指令通道保持着连接,所以服务器端可以通过指令端口把数据处理结果实时地反馈到终端,终端就可以展示传输任务的进度或者传输的异常信息。
文件传输完毕后,服务器将重置连接池中的终端套接字对象为空闲状态,等待下一个传输任务。当空闲时间超时服务器就断开与终端的连接,关闭该终端的指令通道,销毁套接字对象。
文件传输过程中,如果由于某些原因断开了与服务器的连接(例如网络原因或者人为中断传输任务),那么服务器也同样地会注销与终端对应的守护进程、连接池中的套接字对象,及时回收服务器资源。
本案发明将终端和服务端通讯的文本数据和流数据分离,使用web-socket协议传输文本数据、通过http/https协议传输流数据。服务器端需要开启一个“web-socket”服务和一个“http/https”的服务,接收终端不同类型的数据。
本发明技术方案中,通过接收终端发送的文件传输请求,根据所述文件传输请求对用户身份进行验证,在用户身份验证通过后,发送第一状态信号至终端,终端反馈文件参数,再对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,进一步地终端对标传输文件进行切片生成切片文件,接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。本发明技术方案中通过系统进程对处理后的切片文件进行逐步传输,无需将文件全部载入内存,避免占传输时占用大量的内存,同时也提高了文件传输时的效率。
本实施例中,所述建立系统进程具体包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘包括:
接受终端发送的切片文件,通过IO对象将将所述切片文件写入缓存空间;
当缓存空间填满后,将缓存空间中的切片文件写入至预设磁盘。一般缓存空间的存储量不大,当需要传输大文件时,通过将缓存空间的切片文件写入磁盘,有效缓解缓存空间被填满的问题。
值得说明的是,守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。服务器端的http/https服务在接收到终端的数据后,根据终端发送的token在连接池中查找到处理该终端流数据的守护进程,将流数据写入到守护进程的缓冲空间。当缓冲区填满后就将数据发送给IO对象,IO对象再将数据写入到磁盘,最后缓冲区释放数据重新接收终端的流数据。使用缓冲机制可以减少磁盘IO的操作、缓解IO的负荷。
参照图5,本实施例中,所述接收所述文件参数,对所述文件参数进行参数验证具体包括:
步骤S201:接收所述文件参数,根据所述文件参数判断预设磁盘中的目标位置是否存在文件;该目标位置为传输文件的保存路径。
易于理解的是,当目标位置已经存在文件时,若继续上传文件会导致上传失败。因此,当目标位置不存在文件时,再继续进行验证。
步骤S202:当目标位置中不存在文件时,根据所述文件参数判断用户在预设磁盘中的目标位置是否存在权限,当目标位置存在权限时参数验证通过。
当参数验证通过时,服务器准备就绪,反馈状态第二状态信号,通知终端可以上传文件了。
终端得到服务器端指令端口的正常应答后,就可以开始传输流数据。终端对准备传输的文件进行切片,同时在一个异步进程中将切片数据和服务器分配的token,通过http/https协议分批次地发送到服务器的数据端口。
参照图4,图4为本发明文件传输方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明文件传输方法的第二实施例。
在第二实施例中,所述步骤S40之后,所述文件传输方法还包括:
步骤S50:根据文件参数获取待传输的目标传输文件的大小;值得说明的是,由终端发送至服务器的文件参数中包含有文件大小的基本属性信息,通过从文件参数中提取,便可获得目标传输文件的大小。
步骤S60:获取预设磁盘中已接收的目标传输文件的文件大小;文件参数中还包含有目标传输文件的存储路径,通过分析该存储路径对应的存储区域的已用空间,即可获得已接收的目标传输文件的文件大小。
步骤S70:基于待传输的目标传输文件的大小及已接收的目标传输文件的文件大小确定文件传输进度;本实施例中,将已接收的目标传输文件的文件大小与待传输的目标传输文件的大小的比值作为文件传输进度,并实时反馈文件传输进度。
步骤S80:将所述文件传输进度反馈至终端,以进行展示。本实施例中,是通过指令通道传输文件传输进度。终端还可设置显示屏,在显示屏上实时反馈当前文件传输进度。如此,方便用户知晓当前文件传输情况,提高用户体验。
为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有文件传输程序,所述文件传输程序被处理器执行时实现如上所述的文件传输方法的步骤。
参照图6,为实现上述目的,本发明还提出一种文件传输装置,所述文件传输装置包括:
接收模块10,用于响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
验证模块20,用于接收所述文件参数,对所述文件参数进行参数验证;
进程模块30,用于在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对标传输文件进行切片生成切片文件;
存储模块40,用于接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
图7是本发明实施例方案涉及的硬件运行环境的终端104的结构示意图。终端104包括处理器1001,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括I/O(Input/Output,输入/输出)接口,例如USB接口,以及视频接口,例如HDMI(High Definition MultimediaInterface,高清多媒体)接口、SDI(serial digital interface,数字分量串行)接口、VGA(Video Graphics Array,视频图形阵列)接口、以及DVI(Digital Visual Interface,数字视频)接口等。I/O设备以及显示设备可以分别通过I/O接口以及视频接口与终端102进行连接通信。其中,I/O设备可以是键盘和鼠标等输入设备。网络接口1004可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器2005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图6中示出的终端结构并不构成对终端104的限定,还可以是比图示更多或更少的部件。
作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及接入显示程序。
在图7所示的终端中,网络接口1004主要用于连接服务器104,与服务器104进行数据通信;用户接口1003主要用于连接手写屏106,与手写屏106进行数据通信;而处理器1001可以用于调用存储器1005中存储的接入显示程序,并执行以下操作:向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
优选地,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘包括:
所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使服务器通过IO对象将所述切片文件写入缓存空间。
参照图8,本发明还提出文件传输方法的第三实施例,在第三实施例中该所述文件传输方法包括:
步骤S100:终端向服务器发送文件传输请求,以使所述服务器根据所述文件传输请求对用户身份进行验证,在用户身份验证通过后,反馈第一状态信号;
值得说明的是,终端先通过web-socket协议向服务器发起文件传输请求,文件传输请求中包括传输任务的参数,例如:将要传输的文件大小、文件在服务器上保存的位置等。web-socket协议为一种在单个TCP连接上进行全双工通信的协议。
值得说明的是,终端通过web-socket协议与服务器指令端口建立连接,向服务器发送传输文件的请求。服务器接受到终端的请求后,将终端的套接字对象到保存连接池中,并为终端分配一个唯一的token,再将token反馈给终端。终端收到服务器端的token后,表示指令通道创建成功。在计算机身份认证中表示令牌(临时)。指令通道用于传输文本数据。
终端连接池是一个hash表(散列表),终端的套接字对象作为元素的value,分配给终端的token作为元素的key。这样就可以实现根据token快速查找到终端的套接字对象。
本实施例中,身份验证之前终端与服务器建立连接,终端将用户ID及密码发给服务器。发送的内容包含有用户ID和密码,服务器会对认证信息的正确性进行验证。如验证通过,第一状态信号至终端,以告知终端。终端收到第一状态信号后将要传输的文件的文件参数发送至服务器。
步骤S200:响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
本实施例中,文件参数包含有文件的保存文件的完整路径,参数验证包括:用户在目标位置是否有权限;是否有其他用户上传文件至该目标位置;目标位置是否存在文件。
可以理解的是,首先,服务器根据文件参数确定用户在目标位置是否有权限和是否有其他用户上传文件至该目标位置。若用户在目标位置无权限或者他用户在上传文件至该目标位置,则反馈状态信息至终端,终端停止上传文件。
进一步地,服务器在确定目标位置是否存在文件。在目标位置存在文件时,服务器反馈状态信息值终端。对于这种情况,终端存储有预设策略。本实施例中预设策略包括:停止上传、跳过当前文件、覆盖文件、重命名文件及文件续传。
对于上述5中策略,用于根据自己的需求进行选择,输入选择信号,选中策略。当选中停止上传或者跳过当前文件时,终端停止上传文件;当选中覆盖文件、重命名文件或者文件续传时,终端降策略信号发送至服务器。
本实施例中采用的守护进程作为系统进程。建立系统进程后服务器还创建一个数据通道,用于传输流数据。
需要说明的是,服务器端的web-socket服务在接收到终端的请求后,分配一个守护进程用于处理该终端的流数据;终端再将文件切片,通过http/https协议发送文件切片的流数据到服务器端,同时与服务器web-socket服务保持正常连接。
步骤S300:响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
该磁盘为服务器内部设置的磁盘。因为终端与服务端指令通道保持着连接,所以服务器端可以通过指令端口把数据处理结果实时地反馈到终端,终端就可以展示传输任务的进度或者传输的异常信息。
文件传输完毕后,服务器将重置连接池中的终端套接字对象为空闲状态,等待下一个传输任务。当空闲时间超时服务器就断开与终端的连接——关闭该终端的指令通道,销毁套接字对象。
文件传输过程中,如果由于某些原因断开了与服务器的连接(例如网络原因或者人为中断传输任务),那么服务器也同样地会注销与终端对应的守护进程、连接池中的套接字对象,及时回收服务器资源。
本案发明将终端和服务端通讯的文本数据和流数据分离,使用web-socket协议传输文本数据、通过http/https协议传输流数据。服务器端需要开启一个“web-socket”服务和一个“http/https”的服务,接收终端不同类型的数据。
具体地,所述建立系统进程包括:建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘包括:
所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使服务器通过IO对象将所述切片文件写入缓存空间,当缓存空间填满后,将缓存空间中的切片文件写入至预设磁盘。一般缓存空间的存储量不大,当需要传输大文件时,通过将缓存空间的切片文件写入磁盘,有效缓解缓存空间被填满的问题。
值得说明的是,守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。服务器端的http/https服务在接收到终端的数据后,根据终端发送的token在连接池中查找到处理该终端流数据的守护进程,将流数据写入到守护进程的缓冲区。当缓冲区填满后就将数据发送给IO对象,IO对象再将数据写入到磁盘,最后缓冲区释放数据重新接收终端的流数据。使用缓冲机制可以减少磁盘IO的操作、缓解IO的负荷。
进一步地,在所述文件参数没有通过验证后,根据预设策略及用户输入的选择信号生成策略信号,以停止传输目标文件或者建立系统进程,反馈第二状态信号。
值得说明的是,本实施例中预设策略包括:停止上传、跳过当前文件、覆盖文件、重命名文件及文件续传,用于根据自己的实际需求,从上述预设策略中选择其中之一,再继续执行下一步动作。
参照图9,本发明还提出一种文件传输装置,所述文件传输装置包括:
请求模块100,用于向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
发送模块200,用于响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
传输模块300,用于相应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
一种存储介质,所述存储介质上存储有文件传输程序,所述文件传输程序被处理器执行时实现如上所述的接入显示方法的步骤。
此外,请继续参照图1,本发明还提出一种文件传输系统,所述文件传输系统包括终端102及服务器104;其中
终端102向服务器104发送文件传输请求,服务器104响应于所述文件传输请求,反馈第一状态信号;
终端102响应于第一状态信号,发送文件参数至所述服务器,所述服务器104对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号至终端;
终端102响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器104,服务器104通过系统进程将切片文件存储于预设磁盘。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种文件传输方法,其特征在于,所述文件传输方法包括:
响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
接收所述文件参数,对所述文件参数进行参数验证;
在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对目标传输文件进行切片生成切片文件;
接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
2.如权利要求1所述的文件传输方法,其特征在于,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘包括:
接收终端发送的切片文件,通过IO对象将所述切片文件写入缓存空间。
3.如权利要求1所述的文件传输方法,其特征在于,在接受终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘之后,所述文件传输方法包括:
根据文件参数获取待传输的目标传输文件的大小;
获取预设磁盘中已接收的目标传输文件的文件大小;
基于待传输的目标传输文件的大小及已接收的目标传输文件的文件大小确定文件传输进度;
将所述文件传输进度反馈至终端,以进行展示。
4.如权利要求1~3任意一项所述的文件传输方法,其特征在于,所述接收所述文件参数,对所述文件参数进行参数验证包括:
接收所述文件参数,根据所述文件参数判断预设磁盘中的目标位置是否存在文件;
当目标位置中不存在文件时,根据所述文件参数判断用户在预设磁盘中的目标位置是否存在权限,当目标位置存在权限时参数验证通过。
5.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行文件传输程序,所述文件传输程序被所述处理器执行时实现如权利要求1至4中任一项所述的文件传输方法的步骤。
6.一种存储介质,其特征在于,所述存储介质上存储有文件传输程序,所述文件传输程序被处理器执行时实现如权利要求1至4中任一项所述的文件传输方法的步骤。
7.一种文件传输装置,其特征在于,所述文件传输装置包括:
接收模块,用于响应于终端发送的文件传输请求,发送第一状态信号至终端,以使所述终端发送文件参数;
验证模块,用于接收所述文件参数,对所述文件参数进行参数验证;
进程模块,用于在所述文件参数通过验证后,建立系统进程,并反馈第二状态信号,以使所述终端在接收到所述第二状态信号后,对标传输文件进行切片生成切片文件;
存储模块,用于接收终端发送的切片文件,通过所述系统进程将所述切片文件存储于预设磁盘。
8.一种文件传输方法,其特征在于,所述文件传输方法包括以下步骤:
向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
9.如权利要求8所述的文件传输方法,其特征在于,所述建立系统进程包括:
建立缓存空间及对应的IO对象,并将所述缓存空间及对应的IO对象作为系统进程;
相应地,所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘包括:
所述响应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使服务器通过IO对象将所述切片文件写入缓存空间。
10.一种文件传输装置,其特征在于,所述文件传输装置包括:
请求模块,用于向服务器发送文件传输请求,以使所述服务器响应于所述文件传输请求,反馈第一状态信号;
发送模块,用于响应于第一状态信号,发送文件参数至所述服务器,以使所述服务器对所述文件参数进行参数验证,在所述文件参数通过验证后,建立系统进程,反馈第二状态信号;
传输模块,用于相应于第二状态信号,对目标传输文件进行切片生成切片文件,将切片文件传输至所述服务器,以使所述服务器通过系统进程将切片文件存储于预设磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953074.XA CN110611718A (zh) | 2019-10-08 | 2019-10-08 | 文件传输方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953074.XA CN110611718A (zh) | 2019-10-08 | 2019-10-08 | 文件传输方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110611718A true CN110611718A (zh) | 2019-12-24 |
Family
ID=68894254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910953074.XA Pending CN110611718A (zh) | 2019-10-08 | 2019-10-08 | 文件传输方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110611718A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158947A (zh) * | 2019-12-31 | 2020-05-15 | 深圳Tcl数字技术有限公司 | 预抄写文件制作方法、服务器及可读存储介质 |
CN112469030A (zh) * | 2020-12-01 | 2021-03-09 | 北京小熊博望科技有限公司 | 一种跨终端多文件传输方法 |
CN112769949A (zh) * | 2021-01-20 | 2021-05-07 | 杭州鸿泉物联网技术股份有限公司 | 文件传输方法及装置、电子设备和存储介质 |
CN113252217A (zh) * | 2021-07-15 | 2021-08-13 | 南京东大智能化系统有限公司 | 基于光纤光栅的应力变化监测方法 |
CN114172898A (zh) * | 2022-02-10 | 2022-03-11 | 中国人民解放军海军工程大学 | 一种大文件远程传输方法 |
CN114448974A (zh) * | 2022-01-13 | 2022-05-06 | 骤雨湾(武汉)技术服务有限公司 | 远程文件传输方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108882026A (zh) * | 2018-06-15 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种基于ts流的大文件传输方法及装置 |
CN108881485A (zh) * | 2018-07-30 | 2018-11-23 | 中国石油化工股份有限公司 | 保障大数据包下的高并发系统响应时间的方法 |
CN109474606A (zh) * | 2018-12-04 | 2019-03-15 | 平安科技(深圳)有限公司 | 文件传输方法、装置、计算机设备及存储介质 |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
CN110011952A (zh) * | 2018-01-05 | 2019-07-12 | 中国移动通信有限公司研究院 | 一种数据传输的方法、服务集群及客户端 |
-
2019
- 2019-10-08 CN CN201910953074.XA patent/CN110611718A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110011952A (zh) * | 2018-01-05 | 2019-07-12 | 中国移动通信有限公司研究院 | 一种数据传输的方法、服务集群及客户端 |
CN108882026A (zh) * | 2018-06-15 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种基于ts流的大文件传输方法及装置 |
CN108881485A (zh) * | 2018-07-30 | 2018-11-23 | 中国石油化工股份有限公司 | 保障大数据包下的高并发系统响应时间的方法 |
CN109474606A (zh) * | 2018-12-04 | 2019-03-15 | 平安科技(深圳)有限公司 | 文件传输方法、装置、计算机设备及存储介质 |
CN109547566A (zh) * | 2018-12-25 | 2019-03-29 | 华南理工大学 | 一种基于内存分配的多线程上传优化方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158947A (zh) * | 2019-12-31 | 2020-05-15 | 深圳Tcl数字技术有限公司 | 预抄写文件制作方法、服务器及可读存储介质 |
CN112469030A (zh) * | 2020-12-01 | 2021-03-09 | 北京小熊博望科技有限公司 | 一种跨终端多文件传输方法 |
CN112769949A (zh) * | 2021-01-20 | 2021-05-07 | 杭州鸿泉物联网技术股份有限公司 | 文件传输方法及装置、电子设备和存储介质 |
CN113252217A (zh) * | 2021-07-15 | 2021-08-13 | 南京东大智能化系统有限公司 | 基于光纤光栅的应力变化监测方法 |
CN114448974A (zh) * | 2022-01-13 | 2022-05-06 | 骤雨湾(武汉)技术服务有限公司 | 远程文件传输方法、装置、设备及存储介质 |
CN114448974B (zh) * | 2022-01-13 | 2024-04-02 | 骤雨湾(武汉)技术服务有限公司 | 远程文件传输方法、装置、设备及存储介质 |
CN114172898A (zh) * | 2022-02-10 | 2022-03-11 | 中国人民解放军海军工程大学 | 一种大文件远程传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110611718A (zh) | 文件传输方法、装置、服务器及存储介质 | |
EP2230597A1 (en) | Thin client server system and method of managing a driver of a USB device | |
EP2527999A1 (en) | Method and apparatus for splitting media files | |
US9560116B2 (en) | Network device, system, method, and storage medium | |
EP2840759B1 (en) | Conference system, corresponding method and program | |
US20180338054A1 (en) | Image reading apparatus transmitting device identification information and reading information to push notification server, and method for controlling the image reading apparatus | |
CN106416195A (zh) | 可操作的通知 | |
JP5801518B2 (ja) | 情報伝送方法、装置、システム、および端末 | |
CN104092815A (zh) | 一种基于安卓系统的应用间信息交互方法及装置 | |
CN112650456A (zh) | 打印方法、装置和电子设备 | |
CN112346751B (zh) | 应用程序的安装方法、装置、电子设备和存储介质 | |
CN103685332A (zh) | 文件上传方法、客户端、服务器及系统 | |
CN105320473A (zh) | 一种文档打印方法及装置 | |
CN103825912A (zh) | 一种数据传输方法、电子设备及服务器 | |
CN103973772B (zh) | 文件读写方法和装置 | |
WO2011067980A1 (ja) | コンテンツ選択システム、提供装置、転送装置、およびコンテンツ選択方法 | |
WO2015000417A1 (en) | Method, apparatus, application interactive platform, terminal, and system for uploading an image | |
CN108021459B (zh) | 跨进程发送打点日志的方法及装置 | |
US10158775B2 (en) | Image processing apparatus, information processing apparatus, and medium | |
CN108112052B (zh) | 终端的网络共享方法、装置、空气调节器及存储介质 | |
US20150249749A1 (en) | Terminal apparatus, information processing system, and information transmission method | |
CN105786367A (zh) | 一种虚拟桌面的显示方法和终端 | |
CN111565382B (zh) | 传输方法和电子设备 | |
CN112052377A (zh) | 资源推荐方法、装置、服务器和存储介质 | |
KR101703963B1 (ko) | 캐시 서버를 이용한 멀티미디어 서비스를 제공하는 방법 및 시스템 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191224 |