发明内容
本申请实施例提供一种文件传输方法、装置、服务器及计算机可读存储介质,能提高文件传输效率的同时提高文件传输安全性。
本申请实施例提供了一种文件传输方法,应用于第一服务器中,包括:
接收来自于第二服务器的文件分片传输请求,并获取所述文件分片传输请求对应的待传输文件的文件信息、所述待传输文件对应的待传输分片的分片信息、需传输所述待传输文件的用户信息;
获取所述第一服务器的服务器信息,并根据所述服务器信息、所述文件信息、所述分片信息和所述用户信息确定所述待传输文件对应的目标基础链接;
根据所述待传输文件所对应的传输事件标识、所述文件信息、所述目标基础链接和所述分片信息生成所述待传输分片的目标分片签名链接,所述目标分片签名链接唯一;
将所述目标分片签名链接通过所述第二服务器发送至终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种文件传输方法,应用于第二服务器中,包括:
获取待传输文件的目标文件摘要信息,并检测所述第二服务器中是否保存有所述目标文件摘要信息;
若否,则获取所述待传输文件的待传输分片的目标分片摘要信息,并检测所述第二服务器中是否保存有所述目标分片摘要信息;
若存在目标分片摘要信息未保存,接收来自于终端的文件分片传输请求,并接收第一服务器基于所述文件分片传输请求所确定的待传输分片的目标分片签名链接;
将所述目标分片签名链接发送至所述终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种文件传输方法,应用于终端中,包括:
当检测到文件传输指令时,获取所述文件传输指令对应的待传输文件的文件信息和需传输所述待传输文件的用户信息;
确定所述待传输文件的目标文件摘要信息,并向所述第二服务器中发送所述目标文件摘要信息,以使得所述第二服务器根据目标文件摘要信息检测所述待传输文件是否已经传输;
若未传输,将所述待传输文件进行分片处理,以得到所述待传输文件的待传输分片的分片信息;
生成所述待传输分片的目标分片摘要信息,并向所述第二服务器中发送目标分片摘要信息,以使得所述第二服务器根据所述目标分片摘要信息确定是否存在未传输的待传输分片;
根据未传输的待传输分片的分片信息、所述用户信息和所述文件信息生成文件分片传输请求,并接收第二服务器基于所述文件分片传输请求返回的所述待传输分片的目标分片签名链接;
将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种文件传输方法,该文件传输方法应用于文件传输系统中,所述文件传输系统包括第一服务器和第二服务器,或者第一服务器、第二服务器和终端,其中,第一服务器执行上述应用于第一服务器中的文件传输方法,第二服务器执行上述应用于第二服务器中的文件传输方法,终端执行上述应用于终端中的文件传输方法。
本申请实施例还提供了一种文件传输装置,应用于第一服务器中,包括:
第一接收模块,用于接收来自于第二服务器的文件分片传输请求;
第一获取模块,用于获取所述文件分片传输请求对应的待传输文件的文件信息、所述待传输文件对应的待传输分片的分片信息、需传输所述待传输文件的用户信息,以及获取所述第一服务器的服务器信息;
第一链接确定模块,用于根据所述服务器信息、所述文件信息、所述分片信息和所述用户信息确定所述待传输文件对应的目标基础链接;
第二链接确定模块,用于根据所述待传输文件所对应的传输事件标识、所述文件信息、所述目标基础链接和所述分片信息生成所述待传输分片的目标分片签名链接;
第一发送模块,用于将所述目标分片签名链接通过所述第二服务器发送至终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种文件传输装置,应用于第二服务器中,包括:
第二获取模块,用于获取待传输文件的目标文件摘要信息。
检测模块,用于检测所述第二服务器中是否保存有所述目标文件摘要信息。
所述第二获取模块,还用于获取所述待传输文件的待传输分片的目标分片摘要信息。
所述检测模块,还用于检测所述第二服务器中是否保存有所述目标分片摘要信息。
第二接收模块,用于若存在目标分片摘要信息未保存,接收来自于终端的文件分片传输请求,并接收第一服务器基于所述文件分片传输请求所确定的待传输分片的目标分片签名链接。
第二发送模块,用于将所述目标分片签名链接发送至所述终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种文件传输装置,应用于终端中,包括:
第三获取模块,用于当检测到文件传输指令时,获取所述文件传输指令对应的待传输文件的文件信息和需传输所述待传输文件的用户信息。
摘要确定模块,用于确定所述待传输文件的目标文件摘要信息。
第三发送模块,用于向所述第二服务器中发送所述目标文件摘要信息,以使得所述第二服务器根据目标文件摘要信息检测待传输文件是否已经传输。
分片模块,用于若存在待传输分片未传输,将所述待传输文件进行分片处理,以得到所述待传输文件的待传输分片的分片信息。
所述摘要确定模块,还用于生成所述待传输分片的目标分片摘要信息。
所述第三发送模块,还用于向所述第二服务器中发送目标分片摘要信息,以使得所述第二服务器根据所述目标分片摘要信息确定是否存在未传输的待传输分片。
请求生成模块,用于根据未传输的待传输分片的分片信息、所述用户信息和所述文件信息生成文件分片传输请求。
第三接收模块,用于接收第二服务器基于所述文件分片传输请求返回的所述待传输分片的目标分片签名链接。
传输模块,用于将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
本申请实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述处理器和所述存储器相连接,所述一个或多个计算机程序被存储于所述存储器中,并配置为由所述处理器执行上述应用于第一服务器中所述的文件传输方法的步骤,或者执行上述应用于第二服务器中的所述的文件传输方法的步骤。
本申请实施例还提供一种文件传输系统,所述文件传输系统中包括第一服务器和第二服务器,所述第一服务器中执行上述所述的应用于第一服务器中的文件传输方法,所述第二服务器中执行上述所述的应用于第二服务器中的文件传输方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一种文件传输方法中的步骤。
本申请实施例通过链接确定模型来生成待传输文件对应的目标基础链接,并根据目标基础链接和待传输文件所对应的传输事件标识和待传输文件的待传输分配的分片信息生成待传输分片的目标分片签名链接,使得终端将待传输分片通过对应的目标分片签名链接传输至第一服务器中。如此,待传输分片无需经过第二服务器,直接从终端传输至第一服务器中,提高了文件传输效率;在传输时,通过文件服务器生成的目标分片签名链接来传输待传输分片,由于该目标分片签名链接唯一,只能上传对应的待传输分片,而不能上传其他的分片,保证了文件传输的安全性;且将待传输文件按照一个个待传输分片来进行传输,使得待传输文件由于网络或者其他原因暂停传输之后,无需再传输已经传输过的分片,进一步提高了文件传输效率。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种文件传输方法、装置、服务器、系统和存储介质。本申请实施例提供的任一种文件传输装置,可以集成在对应的服务器中。该服务器包括第一服务器和第二服务器,其中,第一服务器和第二服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。例如,第一服务器为提供云数据库的云服务器如文件服务器,文件服务器可以是MonIO文件服务器等,第二服务器为提供云服务的云服务器如云应用服务器。
图1是本申请实施例提供的文件传输方法的应用场景示意图,在该应用场景中,包括第一服务器如文件服务器、第二服务器如云应用服务器、以及终端,其中终端包括但不限于智能手机、Pad、穿戴式设备、机器人、智能电视、智能空调、智能车载设备、个人计算机(PC,Personal Computer)、会议机终端等。
终端与第二服务器通信连接,第二服务器与第一服务器通信连接,当终端得到目标分片签名链接后,也可以与第一服务器通信连接。
图2是本申请实施例提供的文件传输方法的简易流程示意图,图3是本申请实施例提供的文件传输方法的流程示意图,请结合图2来参看图3,下面对图3中的方法步骤进行介绍。
101,检测文件传输指令,并获取文件传输指令对应的待传输文件的文件信息和需传输待传输文件的用户信息。
文件传输指令是在终端上生成。例如,在上传文件至网盘中时,点击上传控件,选择待传输文件,然后点击确定控件,则生成文件传输指令;或者将待传输文件直接拖入终端的浏览器的上传框中,生成文件传输指令。
需要注意的是,本申请中仅仅只有文件传输指令是用户触发的,其他的所有请求都是自动生成。
当终端检测到文件传输指令时,获取文件传输指令中对应的待传输文件的文件信息和需传输待传输文件的用户信息。其中,文件信息包括文件大小、文件名称、文件类型等,文件类型可以包括但不限于.jpg、.doc、.xlsx、.mp4、.wmv、asf、asx等,涉及图片、文档、音频、视频等。用户信息包括但不限于用户标识、用户等级、用户身份证等可以表示用户身份和/或等级或者表示用户优先级的信息。用户标识包括但不限于用户名。
102,生成待传输文件的目标文件摘要信息。
其中,可利用摘要算法来生成待传输文件的目标文件摘要信息,该目标文件摘要信息唯一,即不同的待传输文件生成的目标文件摘要信息不同,例如,使用MD5算法来生成待传输文件的MD5值。
103,将待传输文件的目标文件摘要信息传输至第二服务器。
如将MD5值传输至第二服务器。
104,第二服务器检测目标文件摘要信息是否存在。
在第二服务器中保存有用户已经传输成功的所有文件的文件摘要信息,如MD5值,例如,可以在检测到待传输文件的所有待传输分片完全传输完毕,将待传输文件的MD5值发送至第二服务器中保存。
105,向终端返回第一检测结果。该第一检测结果为目标文件摘要信息是否存在于第二服务器中的检测结果。
当第二服务器中存在目标文件摘要信息时,向终端返回对应的已经传输过该待传输文件的提示信息,当第二服务器中不存在目标文件摘要信息,向终端返回对应的未传输该待传输文件的标识,如1等信息,该信息供计算机程序读取,而不直接在终端的显示屏上显示。
106,终端将待传输文件进行分片处理,以得到分片信息,并生成分片处理得到的待传输分片的目标分片摘要信息。
可根据实际场景使用不同的分片规则来对待传输文件进行分片处理,以得到分片信息,其中,分片信息包括分片类型、分片数量、分片序号等。例如,将待传输文件按照每5M/分片来进行分片处理,未达到5M的待传输文件的待传输分片的分片数量为1,分片序号也为1。其中,分片类型可表示该分片中的数据的重要程度等信息;分片序号按照顺序分配,同一个待传输文件的分号序号不重复,例如待传输文件的第一个待传输分片的分片序号为1,第二个待传输分片的分片序号为2,依此类推,后续合并时需要根据分片序号来进行合并。
得到待传输文件的待传输分片之后,利用摘要算法来生成待传输分片的目标分片摘要信息,该目标分片摘要信息唯一,即不同的待传输分片生成的目标分片摘要信息不同,例如,使用MD5算法来生成待传输分片的MD5值。
107,将待传输分片的目标分片摘要信息发送至第二服务器。
108,第二服务器检测目标分片摘要信息是否存在。
在第二服务器中保存有用户已经传输成功的所有文件的分片摘要信息,如MD5值,其中,可以在检测到待传输分片传输完毕时,将待传输分片的MD5值发送至第二服务器中保存。
109,向终端返回第二检测结果。该第二检测结果为目标分片摘要信息是否存在于第二服务器中的检测结果。
当第二服务器中存在部分目标分片摘要信息时,意味着该部分目标分片摘要信息已经传输成功,则过滤掉这些待传输分片,向终端返回对应的已经传输过的待传输分片的分片序号或者向终端返回对应的未传输过的待传输分片的分片序号,当第二服务器中不存在目标分片摘要信息,向终端返回对应的未传输该待传输分片的分片序号或者返回对应的标识,如0,表示该待传输文件的待传输分片未进行传输。
将待传输文件进行分片传输,以确保在待传输文件由于网络或者其他原因暂停传输之后,无需再传输已经传输过的分片,提高了文件传输效率。
110,将未传输的待传输分片的分片信息、用户信息和文件信息生成文件分片传输请求。
例如,假设一个待传输文件分为了10个分片,但第二服务器中已经有前4个分片的MD5值,则意味着该待传输文件已经传输了4个分片,未传输的待传输分片为后面6个分片,未传输的待传输分片的分片信息包括分片数量如为6、分片序号如为5、6、7、8、9、10等。
111,向第二服务器发送该文件分片传输请求。
该文件分片传输请求可以是请求目标分片签名链接的请求。
112,第二服务器转发该文件分片传输请求至第一服务器。
113,第一服务器接收来自于第二服务器的文件分片传输请求,并获取文件分片传输请求对应的待传输文件的文件信息、待传输分片的分片信息、需传输待传输文件的用户信息。
114,根据文件分片传输请求生成待传输文件的传输事件标识。
第一服务器接收到文件分片传输请求之后,会进行两个主要操作:触发分片上传初始化操作和生成目标分片签名链接的操作。其中,分片上传初始化操作用于告诉第一服务器待传输文件接下来需要上传多少个待传输分片,并生成待传输文件的传输事件标识uploadid。一个待传输文件的传输事件标识相同。
115,发送传输事件标识至第二服务器。
116,第二服务器将传输事件标识返回至终端。终端保存该传输事件标识。
117,获取第一服务器的服务器信息,根据服务器信息、文件信息、分片信息、用户信息确定待传输文件对应的目标基础链接。
其中,目标基础链接中包括保存待传输文件的第一服务器的IP、端口、具体目录等。利用IP和端口来连接第一服务器,利用具体目录来打开对应第一服务器中的目录中的文件夹。其中,可将服务器信息、文件信息、分片信息、用户信息输入至链接确定模型中进行处理,以输出待传输文件对应的目标基础链接,或者根据服务器信息、文件信息、分片信息、用户信息,按照其他方式来生成待传输文件对应的目标基础链接。该步骤中更详细的内容请参看下文中对应的描述。
118,根据待传输文件所对应的传输事件标识、文件信息、目标基础链接和分片信息生成待传输分片的目标分片签名链接。
其中,分片信息中包括分片数量和分片序号,每个分片序号对应一个待传输分片,每个分片序号对应一个目标分片签名链接。该目标分片签名链接唯一。该步骤中的更详细的内容请参看下文中对应的描述。
119,发送目标分片签名链接至第二服务器。
120,第二服务器发送目标分片签名链接至终端。
121,终端将待传输分片通过对应的目标分片签名链接传输至第一服务器。
待传输分片直接以数据流的方式通过对应的目标分片签名链接传输至第一服务器,由于终端是将待传输分片直接传输至第一服务器,而不必将待传输分片传输至第二服务器,再由第二服务器转发至第一服务器,因此,提高了传输效率,且节约了第二服务器的资源。
122,当终端将待传输文件的待传输分片完全传输完毕,向第二服务器发送文件合并请求。
该文件合并请求中包括待传输文件的传输事件标识,即uploadid。该待传输文件全部传输至第一服务器中,该待传输文件也为待合并文件。
123,第二服务器将该文件合并请求发送至第一服务器。
124,第一服务器根据文件合并请求,将待合并文件的所有目标分片进行合并,以得到合并文件。
如此,完成了整个待传输文件的传输。本申请实施例中待传输分片无需经过第二服务器,直接从终端传输至第一服务器中,提高了文件传输效率;在传输时,通过文件服务器生成的目标分片签名链接来传输待传输分片,由于该目标分片签名链接唯一,只能上传对应的待传输分片,而不能上传其他的分片,保证了文件传输的安全性;且将待传输文件按照一个个待传输分片来进行传输,使得待传输文件由于网络或者其他原因暂停传输之后,无需再传输已经传输过的分片,进一步提高了文件传输效率。
下面将结合图3从第一服务器、第二服务器和终端的角度来分别描述,上文中未详细描述的步骤,下文中将会详细描述,上文中详细描述的步骤,下文中将不再描述。
图4是本申请实施例提供的文件传输方法的流程示意图,该文件传输方法应用于第一服务器中,该文件传输方法包括如下步骤。
201,接收来自于第二服务器的文件分片传输请求,并获取文件分片传输请求对应的待传输文件的文件信息、待传输文件对应的待传输分片的分片信息、需传输待传输文件的用户信息。
该文件分片传输请求是终端在确定待传输文件的待传输分片的分片信息后生成,并经过第二服务器发送至第一服务器。具体地,终端根据待传输分片的分片信息、待传输文件的文件信息、需传输待传输文件的用户信息生成的。
202,获取第一服务器的服务器信息,根据服务器信息、文件信息、分片信息和用户信息确定待传输文件对应的目标基础链接。
其中,确定目标基础链接的文件信息包括文件大小、文件类型,分片信息包括待传输分片的分片类型,用户信息包括表示用户身份和/或等级的信息,如用户等级等以来确定客户优先级,第一服务器的服务器信息包括当前每个第一服务器的IP、端口、当前每个第一服务器中的存储文件的文件类型、第一服务器中的剩余存储空间信息,如包括但不限于剩余存储空间大小、剩余存储空间类型如是可擦除还是不可擦除、剩余存储空间的读取性能如读取速度快还是慢等信息。
其中,上述根据服务器信息、文件信息、分片信息和用户信息确定待传输文件对应的目标基础链接,包括:将服务器信息、文件信息、分片信息和用户信息输入至链接确定模型中进行处理,以输出待传输文件对应的目标基础链接。
可理解的,文件大小不一样、文件类型不一样、分片类型不一样、客户优先级不一样、服务器信息不一样,链接确定模型中确定的保存待传输文件的第一服务器的IP可能不一样,具体的保存路径也可能不一样,这些因素都影响着目标基础链接的最终确定。目标基础链接中包括保存待传输文件的第一服务器的IP、端口、具体目录等。利用IP和端口来连接第一服务器,利用具体目录来打开对应第一服务器中的目录中的文件夹。
其中,上述将服务器信息、文件信息、分片信息和用户信息输入至链接确定模型中进行处理,以输出待传输文件对应的目标基础链接的步骤,具体包括:将服务器信息、文件信息、分片信息和用户信息输入至链接确定模型中的链接特征提取器进行处理,以得到链接特征信息;将链接特征信息输入至链接确定模型中的链接决策器进行处理,以得到待传输文件对应的目标基础链接。
如将连接特征信息输入至链接确定模型中的连接决策器中进行处理,以得到多个候选基础链接,从多个候选基础链接中选择得分最高的一个候选基础连接,作为目标基础链接。
其中,链接确定模型预先训练好,以便于直接使用。训练链接确定模型的步骤,包括:将文件样本集中的传输文件样本的文件信息、分片信息、用户信息输入至初始链接确定模型中,该初始链接确定模型是一个机器学习模型,如神经网络模型,其中,每个传输文件样本中对应有基础链接标签,该基础链接标签中包括第一个或者多个可保存传输文件样本的基础链接;利用初始链接确定模型中的链接特征提取器来进行处理,以得到样本链接特征信息;将样本链接特征信息输入至初始链接确定模型中的连接决策器中进行处理,以得到传输文件样本对应的样本基础链接;计算样本基础链接与基础链接标签的相似度,若相似度在预设相似度范围内,则停止训练,以得到链接确定模型;否则,继续训练,以修改初始链接确定模型中的参数。需要注意的是,传输文件样本的基础链接标签得到时第一服务器的服务器信息与训练初始链接确定模型时的服务器信息大致相同,如剩余存储空间大小相差不大或者相同。
其中,根据服务器信息、文件信息、分片信息和用户信息确定待传输文件对应的目标基础链接的步骤,包括:根据用户信息确定用户优先级;根据用户优先级、服务器信息如服务器信息的剩余存储空间类型和剩余存储空间的读取性能,从第一服务器中确定匹配的候选第一服务器;根据分片信息如分片类型从候选第一服务器中再次确定候选第一服务器;根据文件信息如文件类型、候选第一服务器的服务器信息如存储文件的文件类型从候选第一服务器中确定目标第一服务器,并进一步确定目标第一服务器的IP和端口;根据文件信息中的文件大小和目标第一服务器的剩余存储空间大小从目标第一服务器中确定目标第一服务器中用于存储待传输文件的具体目录;根据目标第一服务器的IP、端口和具体目录生成目标基础链接。
其中,每个用户优先级都有匹配的存储空间的读取性能、和存储空间类型,可理解地,用户优先级越高,可分配读取速度越快、甚至是不可擦除的第一服务器。再根据分片类型,即分片的重要性程度再次进行第一服务器的筛选,例如,分片的重要性程度越高,所选择的第一服务器的存储性能越好、读取速度越快,不易丢失等,对应的,不同分片类型配置不同的存储性能、读取速度的第一服务器等。
然后根据文件信息中的文件类型、候选第一服务器中存储文件的文件类型,来确定文件信息中的文件类型匹配的目标第一服务器,例如,保存视频的第一服务器用于保存文件类型为视频(如.mp4、.wmv等)的待传输文件、保存图片的第一服务器用于保存文件类型为图片(如.jpg、.png等)的待传输文件、保存文档的第一服务器用于保存文件类型为文档(如.doc、.xlsx等)的待传输文件等,最后根据文件信息中的文件大小和目标第一服务器的剩余存储空间大小来确定目标第一服务器中保存待传输文件的具体目录。
在其他实施例中,还可以先根据分片类型来确定匹配的候选第一服务器,再根据用户优先级再次确定匹配的候选第一服务器,然后根据文件类型来确定匹配的目标第一服务器;或者先根据文件类型来确定匹配的候选第一服务器,再根据用户优先级再次确定匹配的候选第一服务器,然后根据分片类型来确定匹配的目标第一服务器。即在确定目标第一服务器的过程中,分片类型、用户优先级、文件类型该三种不同因子的执行优先级顺序可以根据具体需求来确定。对应的具体步骤将不再描述。
203,根据待传输文件所对应的传输事件标识、文件信息、目标基础链接和分片信息生成待传输分片的目标分片签名链接,该目标分片签名链接唯一。
该步骤中的分片信息包括分片数量和分片序号,文件信息包括文件名称,即根据待传输文件所对应的传输事件标识、文件名称、目标基础链接、分片数量和分片序号生成待传输分片的目标分片签名链接。
具体地,上述203的步骤,包括:将文件信息进行签名处理,以得到文件签名标识;将目标基础链接、文件签名标识、待传输文件所对应的传输事件标识和分片序号进行字段拼接处理,以得到与分片数量相同的目标分片签名链接,各目标分片签名链接中分别对应一个分片序号。
例如,将文件信息进行MD5摘要算法处理或者将文件信息进行哈希处理,以得到文件签名标识,文件签名标识用于表示一个具体的文件名,该文件签名标识唯一,再将目标基础链接、文件签名标识、待传输文件所对应的传输事件标识和其中一个分片序号进行字段拼接处理,以得到该分片序号所对应的目标分片签名链接,每个分片序号都对应得到一个目标分片签名链接,以得到与分片数量相同的目标分片签名链接。假设有6个分片序号,则生成6个目标分片签名链接,因为文件签名标识是唯一的,所以该6个目标分片签名链接也是唯一的。
例如,目标分片签名链接可以为http://145.170.34.124:9000/23-45678 /cd3abf8-ddde-1653-a05b-4ffd2a1ecbe1-W.P.S9915.120.12.2019.exe
uploadid=771234567891011
partnumber=1。其中,分别为第一服务器的IP和端口(http://145.170.34.124:9000)、保存该待传输文件的目录文件夹信息(23-45678)、文件名称所对应的文件签名标识、传输事件标识uploadid、分片序号partnumber。其中,uploadid和partnumber为对应字段,=号后面是对应字段的值。需要注意的是,为了解释说明,在该目标分片签名链接中的一些字段和字段的值并没有进行加密,在其他一些实施例中,这些数据都将会进行加密处理,提高安全性。
其中,每个目标分片签名链接只对应一个特定的待传输文件中的对应分片序号的待传输分片的传输,而不能用来作为他用,例如不能作为其他待传输分片的传输,保证了数据传输的安全性。
每个目标分片签名链接都配置有存活时间,在生成目标分片签名链接或者发送目标分片签名链接时,启动计时器计时,若计时时间达到存活时间,设置该目标分片签名链接无效,无效后该目标分片签名链接将变为无效,不再使用。其中,可根据待传输文件的文件类型来设置不同的存活时间,例如,视频类的文件类型的存活时间为10分钟,文档类的文件类型的存活时间为1分钟等。
204,将目标分片签名链接通过第二服务器发送至终端,以使终端将待传输文件的待传输分片通过对应的目标分片签名链接传输至第一服务器。
待传输分片直接以数据流的方式通过对应的目标分片签名链接传输至第一服务器,由于终端是将待传输分片直接传输至第一服务器,而不必将待传输分片传输至第二服务器,再由第二服务器转发至第一服务器,因此,提高了传输效率,且节约了第二服务器的资源。
在一实施例中,如图4所示,在步骤204之后,还包括步骤205。
205,接收文件合并请求,该文件合并请求中包括待传输文件的传输事件标识。
该文件合并请求是终端在将待传输文件的所有待传输分片传输完毕后生成,生成的文件合并请求可经过第二服务器发送至第一服务器。如此,第一服务器接收到文件合并请求之后,文件合并请求中的该待传输文件已经全部上传至第一服务器,该待传输文件也可以理解为待合并文件,待传输文件的传输事件标识也即待合并文件的传输事件标识。
206,根据文件合并请求,将待传输文件的所有目标分片进行合并,以得到合并文件。
由于待传输文件的所有待传输分片都已经发送至第一服务器,因此,需要将已经全部传输完毕的待传输分片进行合并,以得到合并文件。
其中,上述206的步骤,包括:根据文件合并请求中的传输事件标识来确定通过所对应的目标分片签名链接所传输的待合并文件的目标分片;根据对应的目标分片签名链接中的分片序号来将对应的目标分片进行合并,以得到合并文件,该合并文件即为待传输文件。
其中,将目标分片签名链接中的传输事件标识相同的待传输分片作为目标分片,传输事件标识相同,意味着是同一个文件;再根据目标分片签名链接中的分片序号,按照分片序号的顺序来将对应的目标分片进行合并,以得到合并文件。按照分片序号的顺序合并,使得合并后的文件可以按照正确的顺序合并,不会出错。
至此,整个待传输文件传输完毕。
图5是本申请实施例提供的文件传输方法的流程示意图。该文件传输方法应用于第二服务器中,该文件传输方法包括如下步骤。
301,获取待传输文件的目标文件摘要信息,并检测第二服务器中是否保存有该目标文件摘要信息。
其中,目标文件摘要信息是由终端利用摘要算法对待传输文件进行处理生成的,例如,MD5算法,该目标文件摘要信息唯一。
在第二服务器中保存有用户已经传输成功的所有文件的文件摘要信息,如MD5值。因此,在第二服务器接收到待传输文件的目标文件摘要信息后,将目标文件摘要信息与第二服务器中保存的文件摘要信息进行匹配,若未匹配成功,则意味着该待传输文件未传输或者是未传输成功,若匹配成功,则意味着该待传输文件已经传输成功。
302,向终端返回第一检测结果。
303,获取终端基于第一检测结果发送的目标分片摘要信息,并检测第二服务器中是否保存有目标分片摘要信息。
其中,目标分片摘要信息是由终端将待传输文件进行分片处理,以得到待传输分片,并利用摘要算法生成待传输分片的目标分片摘要信息。其中,一个待传输分片对应一个目标分片摘要信息。该目标分片摘要信息唯一的表示一个待传输分片。
在第二服务器中保存有用户已经传输成功的所有文件的分片摘要信息,如MD5值。当目标分片摘要信息与分片摘要信息匹配时,则意味着目标分片摘要信息所对应的待传输分片已经成功传输至第一服务器,当目标分片摘要信息与分片摘要信息不匹配时,意味着目标分片摘要信息所对应的待传输分片未传输或者是未成功传输至第一服务器。
需要注意的是,本申请实施例中在第一服务器中保存文件摘要信息和分片摘要信息,如此,可根据文件摘要信息确定待传输文件是否已经传输,根据分片摘要信息确定传输时哪些分片已经成功传输,哪些分片未成功传输。如此,可在待传输文件由于网络或者其他原因暂停传输之后,无需再传输已经传输过的分片,提高了文件传输效率。
304,向终端返回第二检测结果。
305,接收终端基于第二检测结果发送的文件分片传输请求,并接收第一服务器基于文件分片传输请求所确定的待传输分片的目标分片签名链接。
其中,文件分片传输请求是基于第二检测结果所确定的待传输文件的待传输分片,并根据待传输分片的分片信息、用户信息和待传输文件的文件信息生成的。第二服务器接收到文件分片传输请求之后,将文件分片传输请求转发至第一服务器。
第一服务器基于文件分片传输请求生成待传输文件的传输事件标识,并获取第一服务器的服务器信息,根据服务器信息、文件信息、分片信息、用户信息生成待传输分片的目标分片签名链接。其中,可将服务器信息、文件信息、分片信息、用户信息输入至链接确定模型中进行处理,以输出待传输文件对应的目标基础链接,再根据待传输文件所对应的传输事件标识、文件信息、目标基础链接和分片信息生成待传输分片的目标分片签名链接。或者也可以按照上文中提到的其他方式来确定目标基础链接,再根据待传输文件所对应的传输事件标识、文件信息、目标基础链接和分片信息生成目标分片签名链接。
306,将目标分片签名链接发送至终端,以使终端将待传输文件的待传输分片通过对应的目标分片签名链接传输至第一服务器。
待传输分片直接通过目标分片签名链接传输至第一服务器,提高传输效率。
在一实施例中,文件传输方法还包括:接收来自于终端的文件合并请求,并将文件合并请求发送至第一服务器,以使得第一服务器基于文件合并请求将待传输文件的目标分片合并,以得到合并文件。
图6是本申请实施例提供的文件传输方法的又一流程示意图,该文件传输方法应用于终端中,该文件传输方法包括如下步骤。
401,当检测到文件传输指令时,获取该文件传输指令对应的待传输文件的文件信息和需传输待传输文件的用户信息。
文件传输指令是由用户触发的,例如,在上传文件至网盘中时,点击上传控件,选择待传输文件,然后点击确定控件,则生成文件传输指令;或者将待传输文件直接拖入终端的浏览器的上传框中,生成文件传输指令。
本申请实施例中,文件传输方法中涉及的其他的请求都是自动生成。
当终端检测到文件传输指令时,获取文件传输指令中对应的待传输文件的文件信息和需传输待传输文件的用户信息。其中,文件信息包括文件大小、文件名称、文件类型等,用户信息包括但不限于用户标识、用户等级、用户身份证等可以表示用户身份和/或等级或者表示用户优先级的信息。
402,确定待传输文件的目标文件摘要信息,并向第二服务器中发送目标文件摘要信息,以使得第二服务器根据目标文件摘要信息检测待传输文件是否已经传输。
可利用摘要算法来生成待传输文件的目标文件摘要信息,该目标文件摘要信息唯一,如利用MD5算法得到的MD5值。生成目标文件摘要信息后,向第二服务器中发送目标文件摘要信息。在第二服务器中保存有用户已经传输成功的所有文件的文件摘要信息,第二服务器接收到目标文件摘要信息后,将目标文件摘要信息和文件摘要信息进行匹配,以检测待传输文件是否已经传输,并向终端返回第一检测结果。
403,若未传输,将待传输文件进行分片处理,以得到待传输文件的待传输分片的分片信息。
若第一检测结果表征待传输文件未传输,将待传输文件进行分片处理,以得到待传输文件的多个待传输分片,并将多个待传输分片按照内容的先后顺序设置分片序号,分片序号也是按照顺序来设置的。若已经传输,则进行提示。
其中,待传输分片的分片信息包括分片数量、分片序号和分片类型。
404,生成待传输分片的目标分片摘要信息,并向第二服务器中发送目标分片摘要信息,以使得第二服务器根据目标分片摘要信息确定是否存在未传输的待传输分片。
利用摘要算法对各待传输分片进行处理,以得到各待传输分片的目标分片摘要信息,该目标分片摘要信息唯一,向第二服务器中发送目标分片摘要信息。以使得第二服务器根据目标分片摘要信息确定是否存在未传输的待传输分片。第二服务器中包括有用户已经传输成功的所有文件的分片摘要信息,如MD5值,将目标分片摘要信息和分片摘要信息进行匹配,以检测分片摘要信息所对应的待传输分片是否已经传输,并向终端返回第二检测结果。
405,根据未传输的待传输分片的分片信息、用户信息和文件信息生成文件分片传输请求,并接收第二服务器基于文件分片传输请求返回的待传输分片的目标分片签名链接。
终端根据第二检测结果确定待传输文件中的未传输的待传输分片,并将未传输的待传输分片保存至发送队列中。
终端根据未传输的待传输分片的分片信息、用户信息和文件信息生成文件分片传输请求,并向第二服务器发送文件分片传输请求,以使得第二服务器向第一服务器转发该文件传输请求。
第一服务器接收到文件传输请求后,基于文件分片传输请求生成待传输文件的传输事件标识,并获取第一服务器的服务器信息,根据服务器信息、文件信息、分片信息、用户信息生成待传输分片的目标分片签名链接。具体地,将服务器信息、文件信息、分片信息、用户信息输入至链接确定模型中进行处理,以输出待传输文件对应的目标基础链接,再根据待传输文件所对应的传输事件标识、文件信息、目标基础链接和分片信息生成待传输分片的目标分片签名链接。该目标分片签名链接唯一且具有存活时间。
第一服务器生成各待传输分片所对应的各目标分片签名链接后,将目标分片签名链接发送至第二服务器,以使得第二服务器转发该目标分片签名链接至终端。
406,将待传输文件的待传输分片通过对应的目标分片签名链接传输至第一服务器。
其中,在终端中设置有若干个线程,例如10个线程,10个线程分别从发送队列中获取待传输分片,并利用待传输分片的目标分片签名链接传输该待传输分片至第一服务器。
直接通过目标分片签名链接将待传输分片传输至第一服务器,而不经过第二服务器中转,提高了文件传输的速度,且将待传输文件分片后传输,避免待传输文件传输过程中暂停或者中断导致的重传的问题,进一步提高文件传输的速度。
在一实施例中,文件传输方法还包括:当终端检测到待传输文件的待传输分片全部传输完毕,向第二服务器发送文件合并请求,以使得第二服务器将文件合并请求发送至第一服务器,第一服务器将待传输文件的待传输分片进行合并,以得到待传输文件。
根据上述实施例所描述的方法,本实施例将从文件传输装置的角度进一步进行描述,该文件传输装置具体可以作为独立的实体来实现,也可以应用/集成在对应的服务器中来实现。
图7是本申请实施例提供的文件传输装置的结构示意图,该文件传输装置可应用/集成在第一服务器中。该装置可以包括第一接收模块501,第一获取模块502、第一链接确定模块503、第二链接确定模块504以及第一发送模块505。
第一接收模块501,用于接收来自于第二服务器的文件分片传输请求。
第一获取模块502,用于获取文件分片传输请求对应的待传输文件的文件信息、待传输文件对应的待传输分片的分片信息、需传输待传输文件的用户信息,以及获取第一服务器的服务器信息。
第一链接确定模块503,用于根据所述服务器信息、所述文件信息、所述分片信息和所述用户信息确定所述待传输文件对应的目标基础链接。
在一实施例中,所述装置中还包括链接确定模型,链接确定模型中包括链接特征提取器、链接决策器,第一链接确定模块503,具体用于将所述服务器信息、所述文件信息、所述分片信息和所述用户信息输入至链接确定模型中的链接特征提取器进行处理,以得到链接特征信息;将所述链接特征信息输入至所述链接确定模型中的链接决策器进行处理,以得到所述待传输文件对应的目标基础链接。
第二链接确定模块504,用于根据所述待传输文件所对应的传输事件标识、所述目标基础链接和所述分片信息生成所述待传输分片的目标分片签名链接。
在一实施例中,所述分片信息包括分片数量和分片序号,同一待传输文件中的各待传输分片的分片序号不同;对应地,所述第二链接确定模块504,具体用于将所述文件信息进行签名处理,以得到文件签名标识;将所述目标基础链接、所述文件签名标识、所述待传输文件所对应的传输事件标识和所述分片序号进行字段拼接处理,以得到与所述分片数量相同的目标分片签名链接,各所述目标分片签名链接中分别对应一个分片序号。
第一发送模块505,用于将所述目标分片签名链接通过所述第二服务器发送至终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
在一实施例中,所述目标分片签名链接设置有存活时间,对应地,该装置还包括计时模块,计时模块,用于在生成目标分片签名链接或者发送目标分片签名链时,启动计时器计时,若计时时间达到所述存活时间,设置所述目标分片签名链接无效。
在一实施例中,如图7所示,该装置还包括合并模块506。对应的,第一接收模块501,还用于接收文件合并请求;合并模块506,用于根据文件合并请求,将待传输文件的所有目标分片进行合并,以得到合并文件。
在一实施例中,合并模块506,具体用于根据文件合并请求中的传输事件标识来确定通过所对应的目标分片签名链接所传输的待合并文件的目标分片;根据对应的目标分片签名链接中的分片序号来将对应的目标分片进行合并,以得到合并文件,该合并文件即为待传输文件。
图8是本申请实施例提供的文件传输装置的结构示意图,该文件传输装置可应用/集成在第二服务器中。该装置可以包括第二获取模块601、检测模块602、第二接收模块603以及第二发送模块604。
第二获取模块601,用于获取待传输文件的目标文件摘要信息。
检测模块602,用于检测所述第二服务器中是否保存有所述目标文件摘要信息。
第二获取模块601,还用于获取所述待传输文件的待传输分片的目标分片摘要信息。
检测模块602,还用于检测所述第二服务器中是否保存有所述目标分片摘要信息。
第二接收模块603,用于若存在目标分片摘要信息未保存,接收来自于终端的文件分片传输请求,并接收第一服务器基于所述文件分片传输请求所确定的待传输分片的目标分片签名链接。
第二发送模块604,用于将所述目标分片签名链接发送至所述终端,以使所述终端将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
图9是本申请实施例提供的文件传输装置的结构示意图,该文件传输装置可应用/集成在终端中。该装置可以包括第三获取模块701、摘要确定模块702、第三发送模块703、分片模块704、请求生成模块705、第三接收模块706和传输模块707。
第三获取模块701,用于当检测到文件传输指令时,获取所述文件传输指令对应的待传输文件的文件信息和需传输所述待传输文件的用户信息。
摘要确定模块702,用于确定所述待传输文件的目标文件摘要信息。
第三发送模块703,用于向所述第二服务器中发送所述目标文件摘要信息,以使得所述第二服务器根据目标文件摘要信息检测待传输文件是否已经传输。
分片模块704,用于若存在待传输分片未传输,将所述待传输文件进行分片处理,以得到所述待传输文件的待传输分片的分片信息。
摘要确定模块702,还用于生成所述待传输分片的目标分片摘要信息。
第三发送模块703,还用于向所述第二服务器中发送目标分片摘要信息,以使得所述第二服务器根据所述目标分片摘要信息确定是否存在未传输的待传输分片。
请求生成模块705,用于根据未传输的待传输分片的分片信息、所述用户信息和所述文件信息生成文件分片传输请求。
第三接收模块706,用于接收第二服务器基于所述文件分片传输请求返回的所述待传输分片的目标分片签名链接。
传输模块707,用于将所述待传输文件的待传输分片通过对应的所述目标分片签名链接传输至所述第一服务器。
在一实施例中,第三发送模块703,还用于当待传输文件的待传输分片全部传输完毕时,向第二服务器发送文件合并请求,以使得第二服务器将文件合并请求发送至第一服务器,第一服务器根据文件合并请求将待传输文件的待传输分片进行合并。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现。以上装置和各单元的具体实现过程,以及所达到的有益效果,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
本申请实施例还提供一种服务器,如图10所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器801、一个或一个以上计算机可读存储介质的存储器802、射频(Radio Frequency,RF)电路803、电源804、输入单元805、以及显示单元806等部件。本领域技术人员可以理解,图中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器801是该服务器的控制中心。其中,处理器利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器可包括一个或多个处理核心;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地是,上述调制解调处理器也可以不集成到处理器中。
存储器802可用于存储软件程序(计算机程序)以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器802还可以包括存储器控制器,以提供处理器801对存储器802的访问。
RF电路803可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器801处理;另外,将涉及上行的数据发送给基站。通常,RF电路803包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路803还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
服务器还包括给各个部件供电的电源804(比如电池),优选的,电源804可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源804还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元805,该输入单元805可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体地实施例中,输入单元805可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器801,并能接收处理器801发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元805还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
该服务器还可包括显示单元806,该显示单元806可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元806可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器801以确定触摸事件的类型,随后处理器801根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图中,触敏表面与显示面板是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
尽管未示出,服务器还可以包括摄像头(需要注意的是,该处的摄像头与上述所述的虚拟相机不同,该处的摄像头指的是硬件)、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能。
其中,当服务器为第一服务器时,处理器801执行上述应用于第一服务器中的任一实施例中的文件传输方法中的步骤,所达到的有益效果也如上文中所示,具体不再赘述。
其中,当服务器为第二服务器时,处理器801执行上述应用于第二服务器中的任一实施例中的文件传输方法中的步骤,所达到的有益效果也如上文中所示,具体不再赘述。
在一实施例中,本申请实施例提供一种终端,该终端的结构与上图中所示的服务器的结构一致,处理器执行上述应用于终端中的任一实施例中的文件传输方法中的步骤,所达到的有意义效果也如上文中所示,具体不再赘述。
在一实施例中,如图1、图2和图3所示,本申请实施例提供了一种文件传输系统,该文件传输系统包括第一服务器和第二服务器,该第一服务器的处理器用于执行上述应用于第一服务器中的任一实施例中的文件传输方法中的步骤,该第二服务器的处理器用于执行上述应用于第二服务器中的任一实施例中的文件传输方法中的步骤。
在一实施例中,如图1、图2和图3所示,本申请实施例还提供了一种文件传输系统,该文件传输系统包括第一服务器和第二服务器,还包括终端。该终端的处理器用于执行上述应用于终端中的任一实施例中的步骤。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令(计算机程序)来完成,或通过指令(计算机程序)控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的文件传输方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一文件传输方法实施例中的步骤,因此,可以实现本发明实施例所提供的任一文件传输方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种文件传输方法、装置、服务器以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。