WEB静态文件上传方法、装置、电子设备及可读存储介质与流程
- 国知局
- 2024-12-06 12:16:42
本技术涉及通信传输,尤其涉及一种web静态文件上传方法、装置、电子设备及可读存储介质。
背景技术:
1、随着互联网技术的迅猛发展和普及,网络已成为现代社会的基础设施。政府、高校、企业等机构为提升服务效率,构建了包含大量代码文件的门户网站和业务系统。这些代码文件采用多种编程语言编写,支持着网站和系统的各项功能。随着业务需求的不断变化,这些代码文件需频繁更新,以确保网站和系统的稳定运行及功能升级。在当前的软件开发与运维实践中,文件上传与发布是保障网站和系统功能更新迭代的重要环节。然而,传统的文件上传与发布方式高度依赖人工操作,包括手动定位文件位置、比对文件差异、执行上传命令等步骤。这种方式不仅效率低下,而且容易出错。面对庞大的文件体系,人工比对文件差异不仅耗时耗力,还容易因疏忽而遗漏关键更改,导致发布后的网站或系统出现功能异常。
2、现有技术主要通过文件上传与发布工具软件来进行自动化的文件替换,虽然能够减少人工操作的繁琐性以及提高上传效率。但这些工具仅停留在文件级别的简单替换上,缺乏深入的文件内容差异对比功能。即使文件被成功替换,如果替换后的文件与预期存在细微差异(如代码逻辑错误、配置参数不一致等),这些差异也无法被及时发现并纠正,最终可能导致网站或系统的功能失效或性能下降。此外,现有的文件上传与发布工具在版本控制、回滚机制等方面也存在不足。一旦发布过程中出现严重问题,往往难以快速定位问题源头并有效回滚到上一稳定版本,进一步加剧了运维工作的复杂性和风险性。综上所述,现有技术在文件上传与发布环节缺乏高效和准确地文件差异对比功能,在文件替换过程中可能因为文件差异导致网站异常。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本技术提供了一种web静态文件上传方法、装置、电子设备及可读存储介质,以解决上述文件上传及发布方法中缺乏高效准确地文件差异对比功能,导致在文件替换过程中容易因为文件内容的细微差异导致网站异常的技术问题。
2、根据本技术实施例的一个方面,本技术提供了一种web静态文件上传方法,包括:s202、构建源目录与目标目录的对应关系并基于所述对应关系遍历所述源目录与所述目标目录生成对应的list目录树;s204、确定所述list目录树中是否存在当前目标文件,若存在则执行s206,否则执行s214;s206、判断所述源目录的修改时间是否大于目标目录的修改时间并确定对应的源文件与当前目标文件的文件大小是否一致,若所述源目录的修改时间大于所述目标目录的修改时间且所述源文件与所述当前目标文件的大小一致则执行s204遍历下一个当前目标文件,否则执行s208;s208、判断文件类型是否为文本类型,若是则执行s210,若否则将当前目标文件加上时间后缀后执行s214;s210、基于diff-utils算法对所述源目录与所述目标目录进行对比分析得到第一数据集合与第二数据集合,基于所述第二数据集合进行判断若源数据和目标数据均为空则执行s214,若否则执行s212;s212、对所述第二数据集合进行查询得到源内容和目标内容均不为空的数据并记录至第三数据集合中,基于所述第三数据集合结合预设的对比报告模板输出对比报告,并执行人工操作确认,若确认则执行s214,否则执行s206;s214、上传所述当前目标文件,将所述当前目标文件及对应的目标目录传输至操作端。
3、可选地,所述构建源目录与目标目录的对应关系并基于所述对应关系遍历所述源目录与所述目标目录生成对应的list目录树,包括:确定源文件对应的源目录以及目标文件对应的目标目录,所述源目录与所述目标目录分别包括文件类型、文件大小和修改时间;确定所述源目录与所述目标目录的对应关系,所述对应关系包括子目录对应关系及文件对应关系;基于所述对应关系通过递归算法分别遍历所述源目录与所述目标目录,生成所述源目录与所述目标目录对应的list目录树。
4、可选地,所述对应关系包括单节点对应关系和集群对应关系,所述单节点对应关系包括单个源目录与目标目录对应,所述集群对应关系包括单个源目录与多个目标目录对应。
5、可选地,所述s202之后还包括采用cache技术将所述list目录树进行缓存处理,具体包括:将所述list目录树转换为序列化格式,所述序列化格式包括字符串或字节流;将序列化后的所述list目录树存储至预设的缓存位置。
6、可选地,所述确定所述list目录树中是否存在当前目标文件,若存在则执行s206,否则执行s214,包括:确定当前目标文件;遍历所述list目录树的目标目录中对应的所有文件,判断所述目标目录中是否包含当前目标文件;若所述目标目录中包含所述当前目标文件,则执行s206;同步地,若所述目标目录中不包含所述当前目标文件,则执行s214上传所述当前目标文件。
7、可选地,所述判断所述源目录的修改时间是否大于目标目录的修改时间并确定对应的源文件与当前目标文件的文件大小是否一致,若所述源目录的修改时间大于所述目标目录的修改时间且所述源文件与所述当前目标文件的大小一致则执行s204遍历下一个当前目标文件,否则执行s208,包括:基于所述list目录树提取所述源目录的修改时间与文件大小以及对应的目标目录的修改时间与文件大小;判断所述源目录的修改时间是否大于所述目标目录的修改时间得到第一比较结果;判断所述源目录的文件大小是否等于所述目标目录的文件大小得到第二比较结果;若所述第一比较结果为是且所述第二比较结果为是,则返回执行s204继续遍历下一个当前目标文件,否则执行s208。
8、可选地,所述判断文件类型是否为文本类型,若是则执行s210,若否则将当前目标文件加上时间后缀后执行s214包括:基于字符串处理函数对所述目标文件进行分割获取对应的文件拓展名;根据所述文件拓展名判断所述目标文件的类型;若所述目标文件为文本类型,则执行s210使用diff-utils算法对源文件和目标文件进行对比分析;若所述目标文件为非文本类型,则根据当前时间生成对应的时间戳信息,对所述时间戳信息进行格式转换后作为所述目标文件的后缀添加至所述目标文件,然后执行s214。
9、可选地,所述基于diff-utils算法对所述源目录与所述目标目录进行对比分析得到第一数据集合与第二数据集合,基于所述第二数据集合进行判断若源数据和目标数据均为空则执行s214,若否则执行s212包括:将所述源目录与所述目标目录存储至计算机的缓存中;基于trim方法对所述源目录对应的源文件以及所述目标目录对应的目标文件进行数据清洗,所述数据清洗至少包括去除空白数据;基于diff-utils算法逐行对所述源目录中的源文件与所述目标目录中对应的目标文件进行对比分析,得到相同行数据及不相同行数据;基于各所述相同行数据构建第一数据集合,基于各所述不相同行数据构建第二数据集合;对所述第二数据集合中的源数据和目标数据进行判断,根据判断结果输出对应的标记信息;根据所述标记信息确定是否构建对比报告。
10、可选地,所述基于trim方法对所述源目录对应的源文件以及所述目标目录对应的目标文件进行数据清洗,包括:读取所述源目录中的源文件以及所述目标目录中的目标文件;提取所述源文件及所述目标文件对应的每一行字符串;通过trim方法去除所述字符串中的空白字符;将去除空白字符后的所述字符串存储至临时文件中,直至去除所述源文件及所述目标文件中的每一行字符串的空白字符,得到数据清洗后的源文件及目标文件。
11、可选地,所述标记信息包括第一标记、第二标记和第三标记,所述根据判断结果输出对应的标记信息包括:若所述源数据为空则输出第一标记,若所述目标数据为空则输出第二标记,若所述源数据与所述目标数据均不为空则输出第三标记;若所述标记信息包括第一标记、和/或第二标记,则执行s214直接上传所述当前目标文件;同步地,若所述标记信息包括第三标记,则执行s212构建对比报告。
12、可选地,所述对所述第二数据集合进行查询得到源内容和目标内容均不为空的数据并记录至第三数据集合中,基于所述第三数据集合结合预设的对比报告模板输出对比报告,并执行人工操作确认,若确认则执行s214,否则执行s206,包括:对所述第二数据集合进行过滤查询得到所述源数据与目标数据均不为空的数据;将查询得到的所述源数据与目标数据均不为空的数据存储至第三数据集合中;获取预设的对比报告模板,将所述第三数据集合中的数据填充至所述对比报告模板中得到对比报告;对所述对比报告执行人工确认操作,若确认成功则输出所述对比报告后执行s214,否则执行s206。
13、可选地,所述上传所述当前目标文件,将所述当前目标文件及对应的目标目录传输至操作端,包括:上传所述当前目标文件并确定所述当前目标文件对应的目录;记录所述当前目标文件及所述当前目标文件对应的目录;将所述记录的当前目标文件及对应的目录按照预设格式发布至对应的操作端。
14、根据本技术实施例的另一方面,本技术提供了一种web静态文件上传装置,包括:目录构建模块,用于构建源目录与目标目录的对应关系并基于对应关系遍历源目录与目标目录生成对应的list目录树;目标文件检查模块,用于确定list目录树中是否存在当前目标文件,若存在则执行s206,否则执行s214;文件状态判断模块,用于判断源目录的修改时间是否大于目标目录的修改时间并确定源文件与当前目标文件的文件大小是否一致,若源目录的修改时间大于目标目录的修改时间且源文件与当前目标文件的大小一致则执行s204遍历下一个当前目标文件,否则执行s208;文件类型判断模块,用于判断文件类型是否为文本类型,若是则执行s210,若否则将当前目标文件加上时间后缀后执行s214;文件对比模块,用于基于diff-utils算法对源目录与目标目录进行对比分析得到第一数据集合与第二数据集合,基于第二数据集合进行判断若源数据和目标数据均为空则执行s214,若否则执行s212;差异数据处理模块,用于对第二数据集合进行查询得到源内容和目标内容均不为空的数据并记录至第三数据集合中,基于第三数据集合结合预设的对比报告模板输出对比报告,并执行人工操作确认,若确认则执行s214,否则执行s206;文件上传模块,用于上传当前目标文件,将目标文件及对应的目标目录传输至操作端。
15、根据本技术实施例的另一方面,本技术提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
16、根据本技术实施例的另一方面,本技术还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
17、本技术实施例提供的上述技术方案与相关技术相比具有如下优点:
18、本技术通过构建源目录与目标目录的对应关系,并遍历生成list目录树,能够自动检测需要更新的文件,不仅基于文件是否存在或文件大小来判断是否需要更新,还进一步考虑了文件的修改时间,避免了不必要的文件传输,提高了上传效率,确保了只有真正需要更新的文件才会被处理。对于文本类型的文件,采用diff-utils算法进行详细的差异对比分析,有助于快速确定文件变更的具体内容,从而判断是否需要上传。对于非文本类型的文件,则采取简单的时间戳后缀方式处理,避免直接覆盖可能导致的数据丢失问题。在检测到文件差异后,不直接进行文件替换,而是先生成对比报告,并进行人工确认,确保了文件更新的准确性和安全性,避免了自动化过程中可能出现的误操作。本方案通过构建源目录与目标目录的对应关系,并利用diff-utils算法对文本类型文件进行深度对比分析,能够高效准确地识别出文件内容的差异,这种差异对比方法确保了文件更新的准确性,提高了文件差异对比的效率和准确性,实现了只有真正需要更新的文件才会被上传,减少了网络传输的数据量,提高了上传效率,同时也降低了对服务器资源的占用。
本文地址:https://www.jishuxx.com/zhuanli/20241204/340397.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表