本申请涉及计算机应用,特别是涉及一种文件传输方法、系统及可读存储介质。
背景技术:
1、批量传输文件的需求,并不少见。例如:需要做数据备份,将一台工作服务器中的全部文件转移到另一台工作服务器中;需要做文件下载,需要将工作服务器中的文件下载到工作台式机中。
2、但是,传统的传输或者下载方式,首先需要识别一个文件,然后建立连接,完成下载,最后关闭连接。建立连接,关闭连接也需要耗费时间,导致文件传输效率低。特别是在面对大量的小文件时,仅仅建立连接,关闭连接就需要消耗大量的时间,效率更低。
3、综上所述,如何有效地解决文件下载效率等问题,是目前本领域技术人员急需解决的技术问题。
技术实现思路
1、本申请的目的是提供一种文件传输方法、系统及可读存储介质,能够提高文件下载效率。
2、为解决上述技术问题,本申请提供如下技术方案:
3、一种文件传输方法,包括:
4、第一客户端向第二客户端发送文件夹的下载请求;
5、所述第二客户端向所述第一客户端反馈文件夹列表;
6、所述第一客户端,遍历所述文件夹列表并向所述第二客户端发送所述文件夹中存在多个子文件的子文件夹下载请求;
7、所述第二客户端读取多个子文件夹中的子文件,并将多个子文件夹中的子文件转换为一个tar文件流后,发送给所述第一客户端;
8、所述第一客户端解析所述tar文件流,得到多个所述子文件,并将多个所述子文件存入本地的所述文件夹中。
9、优选地,所述将多个子文件夹中的子文件转换为一个tar文件流,包括:
10、将多个所述子文件按照tar格式进行拼接,得到所述tar文件流;
11、其中,所述tar格式为一个文件对应一个tar头,所述tar头后为所述子文件的原始文件,依次循环拼接,最后拼接一个全零的block存储内容。
12、优选地,所述tar头包括:文件名称和文件大小,其中,所述文件名称包括所下载的文件夹的相对父路径。
13、优选地,还包括:
14、若所述相对父路径的名称超过设定阈值,则设置对应的所述tar头为长文件名,并拼接一个额外的块,所述块内存储文件名称。
15、优选地,所述第一客户端解析所述tar文件流,得到多个所述子文件,并将多个所述子文件存入本地的所述文件夹中,包括:
16、依次读取所述tar文件流中的tar头,得到子文件名称,去掉指定字节后,读取到所述子文件的原始文件;
17、将所述原始文件按照所述子文件名称保存为在本地的所述文件夹中。
18、优选地,所述将所述原始文件按照所述子文件名称保存为在本地的所述文件夹中,包括:
19、若所述子文件名称为包括路径的名称,则根据所述路径的名称,创建文件夹,并在所述文件夹中保存所述原始文件。
20、优选地,所述第一客户端向第二客户端发送文件夹的下载请求,包括:
21、在所述第一客户端从输入信息中获取到服务器地址、远程文件夹地址和本地需要保持文件的地址后,向所述第二客户端发送所述下载请求。
22、优选地,所述第二客户端向所述第一客户端反馈文件夹列表,包括:
23、所述第二客户端遍历所述文件夹,得到所述文件夹列表,并将所述文件夹列表反馈给所述第一客户端。
24、一种文件传输系统,包括:第一客户端和第二客户端;
25、在所述文件传输系统中执行如上述的所述的文件传输方法的步骤。
26、一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述文件传输方法的步骤。
27、应用本申请实施例所提供的方法,第一客户端向第二客户端发送文件夹的下载请求;第二客户端向第一客户端反馈文件夹列表;第一客户端,遍历文件夹列表并向第二客户端发送文件夹中存在多个子文件的子文件夹下载请求;第二客户端读取多个子文件夹中的子文件,并将多个子文件夹中的子文件转换为一个tar文件流后,发送给第一客户端;第一客户端解析tar文件流,得到多个子文件,并将多个子文件存入本地的文件夹中。
28、在本申请中,当第一客户端需要从第二客户端下载文件夹时,可以向第二客户端发送文件夹的下载请求,第二客户端响应于该下载请求,向第一客户端反馈文件夹列表。然后,第一客户端遍历该文件夹列表,向第二客户端发送子文件夹下载请求。第二客户端读取多个子文件夹中的多个子文件,并将多个子文件转换为一个tar文件流之后,可反馈给第一客户端。第一客户端解析tar文件流,得到多个子文件,并将多个子文件存入到本地的文件夹中,如此,便完成文件夹下载/传输。
29、可见,本申请的技术效果:进行文件传输/下载时,可自动将多个子文件打包为tar文件流进行传输,无需为每个文件单独创建连接和关闭连接,可以省去连接创建和关闭所需耗时,可以有效提高文件传输效率,同时还可避免发生用户解包错误这一情况。
30、相应地,本申请实施例还提供了与上述文件传输方法相对应的文件传输系统和可读存储介质,具有上述技术效果,在此不再赘述。
1.一种文件传输方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将多个子文件夹中的子文件转换为一个tar文件流,包括:
3.根据权利要求2所述的方法,其特征在于,所述tar头包括:文件名称和文件大小,其中,所述文件名称包括所下载的文件夹的相对父路径。
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,所述第一客户端解析所述tar文件流,得到多个所述子文件,并将多个所述子文件存入本地的所述文件夹中,包括:
6.根据权利要求5所述的方法,其特征在于,所述将所述原始文件按照所述子文件名称保存为在本地的所述文件夹中,包括:
7.根据权利要求1所述的方法,其特征在于,所述第一客户端向第二客户端发送文件夹的下载请求,包括:
8.根据权利要求1至7任一项所述的方法,其特征在于,所述第二客户端向所述第一客户端反馈文件夹列表,包括:
9.一种文件传输系统,其特征在于,包括:第一客户端和第二客户端;
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述文件传输方法的步骤。