上传文件到分布式文件系统的方法、装置及设备与流程

文档序号:11286432阅读:515来源:国知局
上传文件到分布式文件系统的方法、装置及设备与流程

本发明涉及软件领域,特别是涉及上传文件到分布式系统的方法、装置及设备。



背景技术:

随着云技术的发展,需要存储在服务器的数据不断增加,单个服务器的本地存储容量难以满足存储需求,所以引入分布式集群存储。而如何将本地文件准确、有序地存储在分布式文件系统hdfs集群服务器中,尤其是如何将不同文件夹中的文件上传到分布式文件系统hdfs中对应的文件夹中成了一个急需解决的问题。

传统方法是用人工手动的方式来解决上述问题,但是人工手动处理,一方面会造成人力成本的增加,另一方面也会增加操作失误发生的几率。



技术实现要素:

基于此,有必要提供一种自动上传文件到分布式文件系统的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

一种上传文件到分布式文件系统的方法,其中,所述方法包括:

获取待上传文件;

根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹;

向所述目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的方法,采用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为一种具体实施方式,其中,所述获取待上传文件的步骤之前还包括:

获取上传记录;

若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;

根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件的步骤包括:

判断所述文件序号是否为初始值;

若是,则获取所述系统标识对应的文件夹中的第一个文件;

若否,则根据所述文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述向所述目标文件夹中上传所述待上传文件的步骤包括:

监测所述上传文件的过程是否中断;

若是,则获取上传文件所属的系统标识以及上传文件的序号;

根据获取上传文件所述的系统标识以及上传文件的序号创建或更新上传记录。

作为一种具体实施方式,其中,所述获取待上传文件的步骤之前还包括:

搜索本地目录,获取系统标识集合;

根据系统标识集合,创建或更新系统标识缓存。

作为一种具体实施方式,其中,所述搜索本地目录,获取系统标识集合的步骤包括:

每隔预先配置的第一时间间隔打开并读取本地目录;

依次判断本地目录下的文件类型是否为文件夹;

若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中;

若否,则继续判断目录下的下一个文件类型,直到获得本地目录下所有的文件夹的名称。

作为一种具体实施方式,其中,所述获取待上传文件的步骤包括:

每隔预先配置的第二时间间隔扫描一次系统标识缓存;

根据所述系统标识缓存中的系统标识序列依次打开文件夹;

检查所述打开的文件夹中是否存在需要上传的文件;

若存在所述需要上传的文件,则得到所述待上传文件;

若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

作为一种具体实施方式,其中,所述获取待上传文件的步骤包括:读取待上传文件;

判断是否读取成功;

若读取成功,则获取所述待上传文件的传输流,读取本地数据;

若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间间隔,再次获取待上传文件。

作为一种具体实施方式,其中,所述向所述目标文件夹中上传所述待上传文件的步骤包括:

建立连接池并连接到所述分布式文件系统;

获取并打开所述目标文件夹所对应的上传路径;

向所述对应的上传路径中写入文件;

判断上传所述待上传文件的操作是否成功;

若上传成功,则删除已经上传的文件,关闭所述对应的文件路径;

若未上传成功,则输出错误信息并更新系统日志。

一种上传文件到分布式文件系统的装置,其中,所述装置包括:

文件上传模块,用于获取待上传文件;

目标文件夹获取模块,用于根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹;

文件上传模块,用于向所述目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的装置,可以实现使用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为一种具体实施方式,其中,所述装置还包括:

记录获取模块,用于获取上传记录;

序号获取模块,用于若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;

文件查找模块,用于根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件查找模块还包括:

序号判断单元,用于判断所述文件序号是否为初始值;

标识获取单元,用于获取所述系统标识中的第一个文件;

序号查找单元,用于根据所述文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述装置还包括:

记录获取模块,用于获取上传记录;

序号获取模块,用于若获取成功,则在上传记录中获取所述待上传文件所处的系统标识以及待上传文件的序号;

文件查找模块,用于根据所述待上传文件所属的系统标识以及待上传文件的序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件查找模块还包括:

序号判断单元,用于判断所述待上传文件的序号是否为初始值;

标识获取单元,用于获取所述系统标识中的第一个文件;

序号查找单元,用于根据所述上传文件的序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件上传模块包括:

中断监测单元,用于监测所述上传文件的过程是否中断;

标识获取单元,用于若是,则获取上传文件所属的系统标识以及上传文件的序号;

记录更新单元,用于根据获取上传文件所述的系统标识以及上传文件的序号创建或更新上传记录。

作为一种具体实施方式,其中,所述装置还包括:

集合获取模块,用于搜索本地目录,获取系统标识集合;

缓存更新模块,用于根据系统标识集合,创建或更新系统标识缓存。

作为一种具体实施方式,其中,所述集合获取模块包括:

目录读取单元,用于每隔预先配置的第一时间间隔打开并读取本地目录;

类型判断单元,用于依次判断本地目录下的文件类型是否为文件夹;

集合更新单元,用于若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中;

目录判断单元,用于若否,则继续判断目录下的下一个文件类型,直到获得本地目录下所有的系统标识。

作为一种具体实施方式,其中,所述文件获取模块包括:

缓存扫描单元,用于每隔预先配置的第二时间间隔扫描一次系统标识缓存;

文件夹打开单元,用于根据所述系统标识缓存中的系统标识序列依次打开文件夹;

文件检查单元,用于检查所述打开的文件夹中是否存在需要上传的文件,若存在所述需要上传的文件,则得到所述待上传文件,若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

作为一种具体实施方式,其中,所述文件获取模块包括:

文件读取单元,用于读取待上传文件;

状态判断单元,用于判断是否读取成功;

数据获取单元,用于若读取成功,则获取所述待上传文件的传输流,读取本地数据;

程序睡眠单元,用于若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间间隔,再次获取待上传文件。

作为一种具体实施方式,其中,所述上传模块包括:

连接池建立单元,用于建立连接池并连接到所述分布式文件系统;

路径获取单元,用于获取并打开所述目标文件夹所对应的上传路径;

文件写入单元,用于向所述对应的上传路径中写入文件;

操作判定单元,用于判断上传所述待上传文件的操作是否成功;

路径关闭单元,用于若上传成功,则删除已经上传的文件,关闭所述对应的文件路径;

日志更新单元,用于若未上传成功,则输出错误信息并更新系统日志。

一种上传文件到分布式文件系统的设备,其中,所述设备包括处理器、存储器以及存储在所述存储器上的计算机程序,所述计算机程序在被处理器执行时实现以下步骤:

获取待上传文件;

根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹;

向所述目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的设备,可以实现使用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为一种具体实施方式,其中,所述处理器执行的获取待上传文件的步骤之前还包括:

获取上传记录;

若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;

根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件的步骤包括:

判断所述文件序号是否为初始值;

若是,则获取所述系统标识对应的文件夹中的第一个文件;

若否,则根据所述文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述向所述目标文件夹中上传所述待上传文件的步骤包括:

监测所述上传文件的过程是否中断;

若是,则获取上传文件所属的系统标识以及上传文件的序号;

根据获取上传文件所属的系统标识以及上传文件的序号创建或更新上传记录。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤之前还包括:

搜索本地目录,获取系统标识集合;

根据系统标识集合,创建或更新系统标识缓存。

作为一种具体实施方式,其中,所述处理器执行的所述搜索本地目录,获取系统标识集合的步骤包括:

每隔预先配置的第一时间间隔打开并读取本地目录;

依次判断本地目录下的文件类型是否为文件夹;

若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中;

若否,则继续判断目录下的下一个文件类型,直到获得本地目录下所有的文件夹的名称。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤包括:

每隔预先配置的第二时间间隔扫描一次系统标识缓存;

根据所述系统标识缓存中的系统标识序列依次打开文件夹;

检查所述打开的文件夹中是否存在需要上传的文件;

若存在所述需要上传的文件,则得到所述待上传文件;

若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤包括:

读取待上传文件;

判断是否读取成功;

若读取成功,则获取所述待上传文件的传输流,读取本地数据;

若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间间隔,再次获取待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述向所述目标文件夹中上传所述待上传文件的步骤包括:

建立连接池并连接到所述分布式文件系统;

获取并打开所述目标文件夹所对应的上传路径;

向所述对应的上传路径中写入文件;

判断上传所述待上传文件的操作是否成功;

若上传成功,则删除已经上传的文件,关闭所述对应的文件路径;

若未上传成功,则输出错误信息并更新系统日志。

附图说明

图1是其中一种具体实施方式提供的上传方法的应用场景图;

图2是其中一种具体实施方式提供的上传方法的流程图;

图3是其中一个具体实施方式所提供的上传方法的部分流程图;

图4是其中一种具体实施方式提供的获取上传文件步骤的流程图;

图5是其中另一种具体实施方式提供的获取待上传文件的步骤的流程图;

图6是其中一种具体实施方式提供的向目标文件夹中上传待上传文件的步骤的流程图;

图7是其中一种具体实施方式提供的上传文件到分布式文件系统的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1是其中一种具体实施方式提供的上传方法的应用场景图。数据可以来自不同的下位机,例如:第一下位机105,第二下位机107,第三下位机109。可以理解,系统还可以再接入更多的下位机。不同的下位机上传的文件将会存放到本地文件服务器103的不同的文件夹中,而文件夹根据系统直接从下位机上传的数据中的系统标识位进行命名,所以一个文件夹对应着一个下位机的系统标识。随着接入下位机的增加,文件夹的数量也会增加。通过该方法,可以实时扫描并识别下位机上传的新文件,并根据不同的系统标识上传到分布式文件系统中对应的目标文件夹中。所述方法可以应用在linux操作系统,通过调用linux系统函数及hdfs接口来实现。所述方法可以使用c++语言,结合linux系统编程实现。

请参阅图2,图2是其中一种具体实施方式提供的上传文件到分布式文件系统的方法的流程图,所述方法包括:

s202,获取待上传文件。

具体地,所述待上传文件是需要上传到分布式文件系统的文件。所述分布式文件系统可以是hadoop分布式系统(hdfs,hadoopdistributefilesystem)。

s204,根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹。

具体地,待上传文件所属的系统标识是指本地存放所述待上传文件的文件夹的名称,根据所述系统标识获取与分布式文件系统中与该系统标识对应的目标文件夹。进一步地,可以使用linux系统编程对hdfs进行操作,首先建立分布式系统连接池,然后连接所述分布式系统,接着打开所述分布式系统中与目标文件夹对应的文件路径,最后向该路径中写入待上传文件。

s206,向所述目标文件夹中上传所述待上传文件。

具体地,向分布式系统对应的目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的方法,采用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为其中一种具体实施方式提供的方法,所述获取待上传文件的步骤之前包括获取上传记录;若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

具体地,利用上传记录可以实现对不同文件夹的上传的进度进行自动的保存,在下一次启动程序时,可以根据记录读取上传记录。所述上传记录就是每个文件夹中已经上传文件的序号,上传记录可以使用以下格式:系统标识+序号,例如:a00000+1表示a00000文件夹上传到了文件编号为1的文件。所述上传记录可以保存在记忆文件中,也可以直接保存在配置文件中。如果存在上传记录,则在上传记录中进一步获取系统标识以及所述系统标识对应的文件序号,然后根据所述系统标识及文件序号获取待上传文件,从而不会使文件传输发生某个文件被多次传输或者某个文件被遗漏传输等错误,能够保证文件传输的正确性和有效性。

上述上传文件到分布式文件系统的方法,利用上传记录可以实现对不同文件夹的上传的进度进行自动的保存,确保在程序重启时,能够自动继续上传。

作为其中一种具体实施方式提供的方法,所述向所述对应文件夹中上传所述待上传文件的步骤包括:监测所述上传文件的过程是否中断;若是,则获取上传文件所属的系统标识以及上传文件的序号;根据获取上传文件所属的系统标识以及上传文件的序号创建或更新上传记录。

具体地,如果出现特殊情况,上传文件的过程被终端,例如需要关闭或者重新启动程序。这时程序会将系统标识缓存中保存的系统标识及已经每个文件夹中已上传文件的序号保存在记忆文件中。所述创建是指没有任何上传记录时,程序会自动创建上传记录。所述更新是指在已有上传记录时,程序会对上传记录进行更新。

作为其中一种具体实施方式提供的方法,所述向所述对应文件夹中上传所述待上传文件的步骤包括:监测是待上传文件是否上传成功;若是,则获取上传文件所属的系统标识以及上传文件的序号;根据获取上传文件所述的系统标识以及上传文件的序号创建或更新上传记录。

具体地,在本实施方式中,所述上传记录会监测上传文件是否上传成功,如果所述上传成功,则记录上传文件所述的系统标识以及上传文件的序号,并创建或者更新上传记录。所述上传记录可以保存在记忆文件中,也可以直接保存在配置文件中,程序可以在每次启动时首先读取记忆文件或者配置文件中的上传记录。

作为其中一种具体实施方式提供的方法,所述根据所述待上传文件所属的系统标识以及待上传文件的序号获取所述待上传文件的步骤还包括:判断所述待上传文件的序号是否为初始值;若是,则获取所述系统标识中的第一个文件;若否,则根据所述上传文件的序号获取所述待上传文件。

具体地,上传记录可以使用以下格式:系统标识+序号。例如上传记录为a00001+0时,0为上传序号的初始值,文件表示a00001文件夹没有上传过文件,则直接上传a00001中的第一个文件。

作为其中一种具体实施方式提供的方法,所述获取待上传文件的步骤之前还包括:

搜索本地目录,获取系统标识集合;根据系统标识集合,创建并更新系统标识缓存。

具体地,搜索本地目录,以获取目录中所有存放需要上传文件的文件夹,由于系统标识与文件夹的名称是一一对应的,因此将获取到的文件夹名称作为系统标识更新到系统标识缓存中,用于记录以及方便地调用系统标识。所述创建是指程序自动创建系统标识缓存。所述更新是指程序根据新获取的系统标识会对所述系统标识缓存进行更新。

具体地,通过搜索本地目录,可以自动识别其中不同的文件夹,并自动获取不同文件夹中需要上传的待上传文件。对本地文件系统进行扫描,可以自动获取新增的待上传文件,进一步减少整个上传流程中的人工操作。

具体地,在搜索本地目录之前,还可以增加读取配置文件的步骤,读取配置文件主要是为了得到待连接的分布式文件系统服务器的ip地址,所述配置文件还可以包括用于保存文件夹上传位置的上传记录信息。

具体地,在扫描本地文件系统前,还可以增加初始化日志系统的步骤,所述日志系统是为了输出必要的程序打印信息,方便查看系统的运行情况以及方便在系统可能出现问题时进行问题排查。

具体地,在搜索本地目录之前,还可以增加建立连接池的步骤,所述建立连接池可以使用linux系统对hdfs接口进行操作,建立hdfs连接池。建立所述连接池可以优化程序性能。

上述上传文件到分布式文件系统的方法,可以通过扫描并记录本地文件系统的方式,识别其中不同的文件夹,以获取满足上传的文件,进一步减少了人工手动处理的步骤。

请参阅图3,图3为一个具体实施方式所提供的方法的部分流程图。所述搜索本地目录,获取系统标识集合的步骤包括:

s302,每隔预先配置的第一时间间隔打开并读取本地目录。

具体地,所述本地目录是指本地系统中存放待上传文件的特定目录,例如hdfs目录等。

具体地,数据可能来自不同的下位机模块系统,不同的下位机模块系统的数据将会存放到不同的文件夹中,搜索本地目录中这些文件夹的名称,如果随着新的下位机模块系统的接入,可能会产生新的系统标识,每隔系统标识都与文件夹名称一一对应。那么可以每隔一个预先配置的时间重新搜索本地目录,获取新的系统标识集合。进一步地,出于性能方面的考虑,可以使程序睡眠一定的时间后再扫描一次本地目录。所述睡眠时间为根据需求预先配置的。更进一步地,所述睡眠时间在5分钟至15分钟的范围内进行选择。

s304,依次判断所述本地目录下的文件的类型是否为文件夹。

具体地,找出本地目录下的所有类型为文件夹的文件。

s306,若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中。

具体地,如果本地文件的类型是文件夹,则直接获取所述文件夹的名称,由于文件夹的名称与系统标识是一一对应的,所以可以直接将文件夹的名称作为系统标识加入系统标识集合。

s308,若否,则继续判断目录下的下一个文件类型,直到本地目录下所有的文件夹的名称。

具体地,上述步骤可以通过linux系统编程对本地系统进行操作,其基本过程为:打开本地目录,读取本地目录,比较判断当前目录下的文件类型为目录还是文件,是目录则表示找到系统标识,直接读取该系统标识,并将该系统标识加入系统标识缓存。直到本地目录下所有的文件类型均完成判断,则扫描完成,关闭本地目录。

请参阅图4,图4为其中一种具体实施方式提供的获取上传文件步骤的流程图。所述获取待上传文件的步骤包括:

s402,每隔预先配置的第二时间扫描一次系统标识缓存。

具体地,定时扫描系统标识缓存,获取系统标识缓存队列中的系统标识序列。

s404,根据所述系统标识缓存中的系统标识序列依次打开文件夹。

具体地,循环检查程序系统表示缓存来查找每个文件夹中的文件。

s406,检查所述打开的文件夹中是否存在需要上传的文件。

s408,若存在所述需要上传的文件,则得到所述待上传文件。

具体地,如果保存了上传记录,那么可以方便的通过上传记录信息来判断该文件夹中是否存在需要上传的文件。例如:根据所述上传记录,可以读取到该文件夹中已经上传到的文件的具体位置,通过所述具体位置就可以判断该文件夹中是否存在需要上传的文件。

s410,若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

具体地,循环检查系统标识缓存中所有的系统标识对应的文件夹。

请参阅图5,图5为其中一种具体实施方式提供的获取待上传文件的步骤的流程图。所述步骤包括:

s502,读取待上传文件。

具体地,通过linux系统编程函数打开系统标识下要上传的具体文件,开始读取待上传文件。

s504,判断是否打开成功。

具体地,开始上传文件,通过函数返回值判断打开成功或者失败。

s506,若读取成功,则获取所述待上传文件的传输流。

具体地,如果读取成功,则获取文件的传输流,进一步读取本地数据,开始上传。

s508,若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间,再次获取待上传文件。

具体地,如果打开失败,则将程序睡眠一段时间,所述时间可以根据需求预先配置。进一步地,预先配置的时间可以在1分钟至5分钟的范围内进行选择。

请参阅图6,图6为其中一种具体实施方式提供的向目标文件夹中上传待上传文件的步骤的流程图。所述步骤包括:

s602,连接所述分布式文件系统。

具体地,调用linux系统的hdfs接口对分布式文件系统进行操作,连接hdfs。

s604,获取并打开所述目标文件夹所对应的上传路径。

具体地,调用linux系统的hdfs接口打开hdfs中对应文件夹所对应的上传路径。

s606,向所述对应的上传路径中写入文件。

具体地,向通过步骤s604获得的上传路径上传路径写入待上传文件。

s608,判断上传所述待上传文件的操作是否成功。

具体地,根据调用hdfs接口的返回值判断上传是否成功。

s610,若上传成功,则删除已经上传的文件,关闭所述对应文件路径。

具体地,如果判断上传成功,就删除已经上传的文件,并关闭所述对应文件路径,同时也可以记录或更改上传记录。

s612,若未上传成功,则输出错误信息,所述错误信息用于更新系统日志。

具体地,如果没有上传成功,则输出错误信息,更新日志文件,方便根据日志文件打印错误信息,排查失败原因。

请参阅图7,图7为其中一种具体实施方式提供的上传文件到分布式文件系统的装置的结构示意图,其中,所述装置包括:

文件上传模块,用于获取待上传文件;

目标文件夹获取模块,用于根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹;

文件上传模块,用于向所述目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的装置,可以实现使用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为一种具体实施方式,其中,所述装置还包括:

记录获取模块,用于获取上传记录;

序号获取模块,用于若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;

文件查找模块,用于根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件查找模块还包括:

序号判断单元,用于判断所述文件序号是否为初始值;

标识获取单元,用于获取所述系统标识中的第一个文件;

序号查找单元,用于根据所述文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述装置还包括:

记录获取模块,用于获取上传记录;

序号获取模块,用于若获取成功,则在上传记录中获取所述待上传文件所处的系统标识以及待上传文件的序号;

文件查找模块,用于根据所述待上传文件所属的系统标识以及待上传文件的序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件查找模块还包括:

序号判断单元,用于判断所述待上传文件的序号是否为初始值;

标识获取单元,用于获取所述系统标识中的第一个文件;

序号查找单元,用于根据所述上传文件的序号获取所述待上传文件。

作为一种具体实施方式,其中,所述文件上传模块包括:

中断监测单元,用于监测所述上传文件的过程是否中断;

标识获取单元,用于若是,则获取上传文件所属的系统标识以及上传文件的序号;

记录更新单元,用于根据获取上传文件所述的系统标识以及上传文件的序号创建或更新上传记录。

作为一种具体实施方式,其中,所述装置还包括:

集合获取模块,用于搜索本地目录,获取系统标识集合;

缓存更新模块,用于根据系统标识集合,创建或更新系统标识缓存。

作为一种具体实施方式,其中,所述集合获取模块包括:

目录读取单元,用于每隔预先配置的第一时间间隔打开并读取本地目录;

类型判断单元,用于依次判断本地目录下的文件类型是否为文件夹;

集合更新单元,用于若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中;

目录判断单元,用于若否,则继续判断目录下的下一个文件类型,直到获得本地目录下所有的系统标识。

作为一种具体实施方式,其中,所述文件获取模块包括:

缓存扫描单元,用于每隔预先配置的第二时间间隔扫描一次系统标识缓存;

文件夹打开单元,用于根据所述系统标识缓存中的系统标识序列依次打开文件夹;

文件检查单元,用于检查所述打开的文件夹中是否存在需要上传的文件,若存在所述需要上传的文件,则得到所述待上传文件,若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

作为一种具体实施方式,其中,所述文件获取模块包括:

文件读取单元,用于读取待上传文件;

状态判断单元,用于判断是否读取成功;

数据获取单元,用于若读取成功,则获取所述待上传文件的传输流,读取本地数据;

程序睡眠单元,用于若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间间隔,再次获取待上传文件。

作为一种具体实施方式,其中,所述上传模块包括:

连接池建立单元,用于建立连接池并连接到所述分布式文件系统;

路径获取单元,用于获取并打开所述目标文件夹所对应的上传路径;

文件写入单元,用于向所述对应的上传路径中写入文件;

操作判定单元,用于判断上传所述待上传文件的操作是否成功;

路径关闭单元,用于若上传成功,则删除已经上传的文件,关闭所述对应的文件路径;

日志更新单元,用于若未上传成功,则输出错误信息并更新系统日志。

一种上传文件到分布式文件系统的设备,其中,所述设备包括处理器、存储器以及存储在所述存储器上的计算机程序,所述计算机程序在被处理器执行时实现以下步骤:

获取待上传文件;

根据所述待上传文件所属的系统标识,获取分布式文件系统中与该系统标识对应的目标文件夹;

向所述目标文件夹中上传所述待上传文件。

上述上传文件到分布式文件系统的设备,可以实现使用自动的方法来代替人工手动处理,一方面可以避免人力成本的增加,另一方面也可以有效降低操作失误发生的几率。

作为一种具体实施方式,其中,所述处理器执行的获取待上传文件的步骤之前还包括:

获取上传记录;

若获取成功,则在所述上传记录中获取系统标识以及系统标识对应的文件序号;

根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述根据所述系统标识以及系统标识对应的文件序号获取所述待上传文件的步骤包括:

判断所述文件序号是否为初始值;

若是,则获取所述系统标识对应的文件夹中的第一个文件;

若否,则根据所述文件序号获取所述待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述向所述目标文件夹中上传所述待上传文件的步骤包括:

监测所述上传文件的过程是否中断;

若是,则获取上传文件所属的系统标识以及上传文件的序号;

根据获取上传文件所属的系统标识以及上传文件的序号创建或更新上传记录。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤之前还包括:

搜索本地目录,获取系统标识集合;

根据系统标识集合,创建或更新系统标识缓存。

作为一种具体实施方式,其中,所述处理器执行的所述搜索本地目录,获取系统标识集合的步骤包括:

每隔预先配置的第一时间间隔打开并读取本地目录;

依次判断本地目录下的文件类型是否为文件夹;

若是,则获取所述文件夹的名称,并将所述文件夹的名称加入所述系统标识集合中;

若否,则继续判断目录下的下一个文件类型,直到获得本地目录下所有的文件夹的名称。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤包括:

每隔预先配置的第二时间间隔扫描一次系统标识缓存;

根据所述系统标识缓存中的系统标识序列依次打开文件夹;

检查所述打开的文件夹中是否存在需要上传的文件;

若存在所述需要上传的文件,则得到所述待上传文件;

若不存在所述需要上传的文件,则继续打开下一个文件夹,直到所述系统标识序列中所对应的文件夹均被检查。

作为一种具体实施方式,其中,所述处理器执行的所述获取待上传文件的步骤包括:

读取待上传文件;

判断是否读取成功;

若读取成功,则获取所述待上传文件的传输流,读取本地数据;

若读取不成功,则程序睡眠,睡眠时间为预先配置的第三时间间隔,再次获取待上传文件。

作为一种具体实施方式,其中,所述处理器执行的所述向所述目标文件夹中上传所述待上传文件的步骤包括:

建立连接池并连接到所述分布式文件系统;

获取并打开所述目标文件夹所对应的上传路径;

向所述对应的上传路径中写入文件;

判断上传所述待上传文件的操作是否成功;

若上传成功,则删除已经上传的文件,关闭所述对应的文件路径;

若未上传成功,则输出错误信息并更新系统日志。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1