一种文件传输方法和设备的制造方法

文档序号:9451572阅读:473来源:国知局
一种文件传输方法和设备的制造方法
【技术领域】
[0001] 本发明的实施方式涉及文件传输的技术领域,更具体地,涉及大文件的断点续传。
【背景技术】
[0002] 在大多数的互联网应用中,大文件传输的客户端与服务器的传输模式大致包括如 下步骤:
[0003] (1)客户端发送上传文件请求,包含一个唯一的上传标识符UploadID,文件总长 度length、上次文件上传中断后的位置off set、文件摘要(比如,MD5摘要)等参数。其中, 在客户端第一次发送上传文件请求时,可以不发送该上次文件上传中断后的位置offset, 但通常是发送为零值的offset。
[0004] (2)服务端收到上传文件请求后,检查offset参数与本地已上传的文件内容长度 是否一致。如果不一致,通知客户端文件续传的断点错误。
[0005] (3)客户端开始按文件内容的字节顺序传输数据。
[0006] (4)文件传输完毕后,服务端检查上传的文件总长度与请求时的传入文件总长度 length参数是否一致(长度校验),服务端重新读取一次已上传文件内容,计算文件摘要, 并与请求时传入的文件摘要参数比较是否一致(内容校验)。如果有加密、压缩等的需求 时,需要再对磁盘进行一次读写操作,生成新的加密、压缩后的文件,删掉上传的明文文件。
[0007] 可见,在上面的文件上传流程中,在数据传输完毕后,服务端需要至少两次执行对 底层文件存储系统(磁盘)的读和/或写操作,一次是计算摘要进行数据内容校验,一次是 加密、压缩产生的读写操作。

【发明内容】

[0008] 有鉴于此,本发明实施方式的目的之一旨在使得在大文件上传时对底层文件存储 系统的读写操作得以减少。
[0009] 根据本发明的一个方面,提供一种文件传输方法。该方法包括:接收按文件内容的 字节顺序上传的数据,每当接收到预定大小的数据块时,调用文件传输实例对所接收的数 据块执行一种或多种处理,并且将所述一种或多种处理的处理结果记录在文件传输实例包 括的变量中;以及在文件传输中断后,对所述文件传输实例执行序列化操作而进行存储。所 述处理结果针对所述一种或多种处理中的不同的处理包括以下各项中的一种或多种:所述 文件的已传输部分的摘要值、所述文件的已传输的字节总数和所述文件的经处理后的字节 总数。
[0010] 根据本发明的实施方式,所述一种或多种处理包括针对所述文件执行的摘要计 算、加密处理、压缩处理或者其组合,所述文件传输实例包括用于执行所述一种或多种处理 的一个或多个接口。
[0011] 根据本发明的实施方式,所述摘要计算使用的摘要算法包括MD5、SHAl和SHA512 中的一种或多种,所述加密处理的加密算法包括AES、DES、3DES、IDEA和RSA中的一种或多 种,所述压缩处理使用的压缩算法包括Def late和Zip中的一种或多种。
[0012] 进一步地,该方法还包括:在接收到传输中断后续传的所述文件的内容时,对存储 的所述文件传输实例执行反序列化操作,调用反序列化操作后的所述文件传输实例对所接 收的所述预定大小的数据块执行所述一种或多种处理。
[0013] 进一步地,该方法还包括:周期性地或者每接收到预定数量的数据,对所述文件传 输实例执行序列化操作而进行存储。
[0014] 进一步地,该方法还包括:在确定所述文件是首次上传时,创建所述文件传输实 例;和/或在确定所述文件上传完毕时,删除所述文件传输实例。
[0015] 进一步地,将所述文件传输实例存储在NOSQL数据库中。
[0016] 根据本发明的另一个方面,提供一种文件传输设备。该设备包括:接收和处理装 置,用于接收按文件内容的字节顺序上传的数据,每当接收到预定大小的数据块时,调用文 件传输实例对所接收的数据块执行一种或多种处理,将所述一种或多种处理的处理结果记 录在文件传输实例包括的变量中;以及文件断点保存装置,用于在文件传输中断后,对所述 文件传输实例执行序列化操作而进行存储。所述处理结果针对所述一种或多种处理中的不 同的处理包括以下各项中的一种或多种:所述文件的已传输部分的摘要值、所述文件的已 传输的字节总数和所述文件的已处理的字节总数。
[0017] 根据本发明的又一个方面,提供一种在计算机可读存储介质中实现的计算机程序 产品,所述计算机可读存储介质具有存储于其中的计算机可读程序代码部分,所述计算机 可读程序代码部分被配置为执行根据前述方法。
[0018] 根据本发明实施方式的技术方案,能够支持对文件的断点续传,并提供对文件内 容的加密、压缩、文件长度及摘要校验支持等各种处理,但减少了对底层文件系统(磁盘) 的读写操作。
[0019] 从下文结合附图所做出的详细描述中,本发明的这些和其他优点和特征将变得明 显,其中在整个下文描述的若干附图中,类似的元件将具有类似的编号。
【附图说明】
[0020] 图1图示根据本发明的实施方式的文件传输方法的流程图;
[0021] 图2图示根据本发明的一个具体实施例的文件传输方法的流程图;以及
[0022] 图3图示根据本发明的实施方式的文件传输设备的框图。
【具体实施方式】
[0023] 下文将参考附图更完整地描述本公开内容,其中在附图中显示了本公开内容的实 施方式。但是这些实施方式可以用许多不同形式来实现并且不应该被解释为限于本文所述 的实施方式。相反地,提供这些实例以使得本公开内容将是透彻和完整的,并且将全面地向 本领域的熟练技术人员表达本公开内容的范围。
[0024] 下面结合附图以示例的方式详细描述本发明的各种实施方式。
[0025] 参考图1,其示出了根据本发明的实施方式的文件传输方法100的流程图。应当理 解,图1中以虚线框示出的步骤为本发明实施方式的可选步骤,仅在部分实施方式出现。
[0026] 在步骤S110,创建文件传输实例。文件传输实例可以一个或多个变量,变量用于存 储各种处理的中间结果或者可以表示文件的传输进度的信息。中间结果例如可以是文件的 已上传部分的摘要或者对于文件后续内容的处理有用的其他信息。可选地,文件传输实例 还可以包括一个或多个接口,接口用于对接收到的文件执行各种可能的处理,并且将处理 后的文件写入到文件存储系统(磁盘)中。
[0027] 可以在某个文件被确定是首次开始传输时,创建针对该文件的文件传输实例。备 选地,也可以在预先创建文件传输实例。
[0028] 在步骤S120,接收按文件内容的字节顺序上传的数据,每当接收到预定大小的数 据块时,调用文件传输实例对所接收的数据块执行一种或多种处理,并且将所述一种或多 种处理的处理结果记录在文件传输实例包括的变量中。此时,文件传输实例驻留在内存中。 文件传输实例可以包括对数据块执行各种处理的各种接口,也可以包括指向外部处理接口 的指针变量。
[0029] 处理结果针对一种或多种处理中的不同的处理可以包括文件的已传输部分的摘 要值。该摘要值可以由文件传输实例中之前所包括的摘要变量值(对应于在该数据块之前 该文件的已经接收部分的摘要)与所接收的数据块进行摘要计算的结果而得出,并更新文 件传输实例中的摘要值。在所处理的数据块是文件的第一个上传的数据块时,可以理解为 文件传输实例之前所包括的摘要变量值为零,则利用所述数据块的摘要值来更新所述文件 传输实例的摘要变量值,即文件的已传输部分的摘要值。
[0030] 附加地,处理结果针对一种或多种处理中的不同的处理还可以包括文件的已传输 的字节总数(表示文件的已传输部分的长度)、和/或文件的已处理的字节总数(表示文件 的已处理部分的长度)。
[0031] 在步骤S130,在文件传输中断后,对文件传输实例执行序列化操作而进行存储。
[0032] 在步骤S140,在接收到传输中断后续传的文件的内容部分时,可以跳转到步骤 120继续执行。
[0033] 例如,可以从
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1