VS编辑器的实时异地备份方法及存储介质与流程

文档序号:22506098发布日期:2020-10-13 09:43阅读:134来源:国知局
VS编辑器的实时异地备份方法及存储介质与流程
本发明涉及数据备份
技术领域
,具体而言涉及vs编辑器的实时异地备份方法及存储介质。
背景技术
:microsoftvisualstudio(简称vs)是美国微软公司的开发工具包系列产品。vs是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如uml工具、代码管控工具、集成开发环境(ide)等等。所写的目标代码适用于微软支持的所有平台。在现有技术中,提供源代码实时异地备份的方案极少。目前,组织、企业和个人在使用该编辑器通常是在计算机windows系统上,当编辑、增加、移动、删除源代码文件时,需手动上传至svn、服务器、网盘等异地进行备份,在手动备份之前若发生源代码数据丢失,则无法保证数据可用、可恢复,而关于编辑源代码过程中实现实时异地备份,却无相关方案。在现有技术中,即使在普通的文件异地备份中,多采用主动传输字符串的形式至远端的服务器,如专利申请号为cn201611076159.7的中国专利文献公开了一种平台数据异地备份方法,该方法是将获取到的所述数据操作类型及操作的数据主动传递给主站点异步备份服务;即使如此,程序员仍然需要在工作时分散精力或时间考虑数据安全和备份问题,会影响程序员的工作效率,备份的时效性亦较差。技术实现要素:本发明要解决的技术问题是提供一种vs编辑器源代码实时异地备份方法、及存储介质,以解决现有技术所存在的没有实现vs编辑器源代码实时异地备份的问题。本发明的上述目的通过独立权利要求的技术特征实现,从属权利要求以另选或有利的方式发展独立权利要求的技术特征。为达成上述目的,本发明所采用的技术方案如下:一种vs编辑器的实时异地备份方法,适用于将pc机上运行的vs编辑器中编辑的内容进行实时异地备份至服务器中,包括以下方法:获取服务器的异地备份接口地址;查找pc机上vs编辑器的进程id,并且根据所述进程id获取vs编辑器的类名称和vs编辑器的进程句柄;根据类名称和进程句柄注入所述类名称和进程句柄所在的进程,并通过前述注入进程监听vs编辑器的保存按钮的状态、和/或将向pc机本地磁盘写入的vs编辑器中编辑的内容;响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容;解析编辑的内容获得备份的内容;按照服务器的异地备份接口地址,通过前述注入进程发送备份的内容至服务器的异地备份接口;服务器的异地备份接口接收备份的内容;将备份的内容写入服务器磁盘,完成异地备份。进一步的实施例中,所述获取vs编辑器所编辑的内容包括:定义一个用于接收保存所述编辑的内容的接收函数,响应于vs编辑器的保存按钮被按下的状态,通过监听“writefile”函数来监听将向pc机本地磁盘写入的vs编辑器编辑的内容,所述接收函数接收编辑的内容。进一步的实施例中,所述编辑的内容包括“writefile”函数的名称及名称对应的参数。进一步的实施例中,所述解析编辑的内容获得备份的内容包括:按照预先定义的备份的内容的格式,将获取到的参数转换为数据对象,发送至消息队列;所述消息队列用于存放数据对象。进一步的实施例中,所述数据对象,为字符串、整数类型、字节类型中的至少一种,包括文件名称和文件内容。进一步的实施例中,所述方法还包括:在发送备份的内容至服务器的异地备份接口前,pc机启用一个新的线程来轮询消息队列,当发现消息队列中存在数据对象时,将该数据对象按照服务器的异地备份接口地址发送至服务器的异地备份接口。进一步的实施例中,所述备份的内容包括文件名称和文件内容,所述将备份的内容写入服务器磁盘完成异地备份包括:响应于服务器的异地备份接口接收到备份的内容,判断服务器磁盘中是否存在前述文件名称;如果是,将备份的内容写入该文件名称对应的文件;如果否,根据该文件名称新建一个文件,将备份的内容写入该新建的文件。进一步的实施例中,所述服务器的异地备份接口的类型为webservice、wcf、tcp/ip中的至少一种。进一步的实施例中,所述方法还包括:响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容;解析编辑的内容获得备份的内容;并且将备份的内容写入pc机自身的磁盘。根据本发明的改进,还提出了一种存储介质,用于存储程序,其中所述程序在被执行时使得pc机和服务器进行以下操作:获取服务器的异地备份接口地址;查找pc机上vs编辑器的进程id,并且根据所述进程id获取vs编辑器的类名称和vs编辑器的进程句柄;根据类名称和进程句柄注入所述类名称和进程句柄所在的进程,并通过注入进程监听vs编辑器的保存按钮的状态、和/或监听将向pc机本地磁盘写入的vs编辑器编辑的内容;响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容;解析编辑的内容获得备份的内容;按照服务器的异地备份接口地址,通过前述注入进程发送备份的内容至服务器的异地备份接口;服务器的异地备份接口接收备份的内容;将备份的内容写入服务器磁盘。以上本发明的技术方案,与现有技术相比,其显著的有益效果在于,采用注入进程、监听获取vs编辑器编辑的内容,并将编辑的内容通过解析得到备份的内容,并且通过注入将备份的内容发送至服务器,完成异地实时备份,避免了因数据丢失、误操作删除、文件移动等情况造成的损失,较大程度的提高了工作效率和保证财产安全性,程序员亦无需在工作时分散精力或时间考虑数据安全和备份问题。通过以下结合附图以举例方式对本发明的实施方式进行详细描述,本发明的其他特征、特点和优点将会更加明显。附图说明附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:图1为本发明较优实施例的vs编辑器的实时异地备份方法的流程示意图。具体实施方式为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。图1是按照本发明一实施例vs编辑器的实时异地备份方法的流程图,一种vs编辑器的实时异地备份方法,适用于将pc机上运行的vs编辑器中编辑的内容进行实时异地备份至服务器中,包括以下方法:pc机获取服务器的异地备份接口地址。查找pc机当前任务管理器中的vs编辑器的进程id,并且根据所述进程id获取vs编辑器的类名称和vs编辑器的进程句柄。根据类名称和进程句柄注入(hook)所述类名称和进程句柄所在的进程,并通过前述注入(hook)进程的操作监听vs编辑器的保存按钮的状态、和/或监听将要向pc机本地磁盘写入的vs编辑器中编辑的内容。前述的注入(hook)为本
技术领域
所属的技术人员所熟知的技术,在此不再赘述。响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容,编辑的内容包括数据(源代码)的插入、删除、更新以及所操作的数据(源代码)。然后解析前述编辑的内容获得备份的内容。备份的内容包括文件名称和文件内容。pc机按照服务器的异地备份接口地址,通过前述注入(hook)进程发送备份的内容至服务器的异地备份接口。服务器的异地备份接口接收备份的内容。将备份的内容写入服务器磁盘,完成实时异地备份。如此,采用注入(hook)进程、监听获取vs编辑器编辑的内容(数据(源代码)的插入、删除、更新以及所操作的数据(源代码)等),并将编辑的内容通过解析得到备份的内容,并且通过注入(hook)将备份的内容发送至服务器,完成异地实时备份,避免了因数据丢失、误操作删除、文件移动等情况造成的损失。在一些优选的实施例中,所述获取vs编辑器所编辑的内容包括:定义一个用于接收保存所述编辑的内容的接收函数,响应于vs编辑器的保存按钮被按下的状态,通过监听“writefile”函数监听将要向pc机本地磁盘写入的vs编辑器中编辑的内容。在本实施例中,pc机windows系统调用“kernel32.dll”动态库,并执行“writefile”函数,截获“writefile”函数地址。当vs编辑器的保存按钮被按下时,触发监听“writefile”函数跳转至接收函数,接收函数根据“writefile”函数地址接收编辑的内容。所述编辑的内容包括“writefile”函数的名称及名称对应的参数。在本实施例中,前述的“writefile”函数名称对应的参数的内容如下:参数类型及说明hfilelong,一个文件的句柄。lpbufferany,要写入的一个数据缓冲区。nnumberofbytestowritelong,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内。lpnumberofbyteswrittenlong,实际写入文件的字节数量。lpoverlappedoverlapped,倘若在指定file_flag_overlapped的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为byvalaslong,并传递零值)。应当理解的是,前述的“writefile”函数和接收函数为本
技术领域
所属的技术人员所熟知的技术,在此不再赘述。在某些实施例中,如图1所示,所述解析编辑的内容获得备份的内容包括:按照预先定义的备份的内容的格式,将获取到的参数转换为数据对象(即备份内容),发送至消息队列;所述消息队列用于存放数据对象(即备份内容)。在本实施例中,根据前述获取到的参数获取缓冲区地址;然后打开一个已存在的进程对象的最高权限,将编辑的内容读入至前述的缓冲区地址对应的缓冲区;从非托管内存中读取一个字节数组;将该字节数组转化为字符串;将字符串发送至消息队列(所述消息队列用于存放字符串);将字符串放入消息队列后立刻跳出消息队列,使得vs编辑器本身的保存命令得以正常进行,将内容写入到pc机本地磁盘。应当注意的是,所述数据对象,为字符串、整数类型、字节类型中的至少一种,数据对象(即备份内容)包括文件名称和文件内容。在某些实施例中,所述方法还包括:在发送备份的内容至服务器的异地备份接口前,pc机启用一个新的线程来轮询消息队列,当发现消息队列中存在数据对象(即备份内容)时,将该数据对象(即备份内容)按照服务器的异地备份接口地址发送至服务器的异地备份接口。所述服务器的异地备份接口的类型为webservice、wcf、tcp/ip中的至少一种。在本实施例中,该服务器的异地备份接口为webservice类型,该异地备份接口发布在服务器上,由iis组件承载运行,并配置端口和ip,将其暴露在内网或外网可访问的环境中。在一些实施例中,将备份的内容(包括文件名称和文件内容)写入服务器磁盘完成异地备份包括:响应于服务器的异地备份接口接收到备份的内容,判断服务器磁盘中是否存在前述文件名称。如果是,将备份的内容写入该文件名称所对应的文件。如果否,根据该文件名称新建一个文件,将备份的内容写入该新建的文件。在本实施例中,服务器的异地备份接口还将备份成功或者失败的结果反馈至pc机。优选地,如图1所示,所述方法还包括:响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容;解析编辑的内容获得备份的内容;并且将备份的内容写入pc机自身的磁盘。如此,程序员无需在工作时分散精力或时间考虑数据安全和备份问题,不影响程序员的正常工作。根据本发明的改进,还提出了一种存储介质,存储介质安装在pc机和服务器上,用于存储程序,其中所述程序在被执行时使得pc机和服务器进行以下操作:获取服务器的异地备份接口地址。查找pc机上vs编辑器的进程id,并且根据所述进程id获取vs编辑器的类名称和vs编辑器的进程句柄。根据类名称和进程句柄注入所述类名称和进程句柄所在的进程,并通过注入进程监听vs编辑器的保存按钮的状态、和/或监听将要向pc机本地磁盘写入的vs编辑器编辑的内容。响应于vs编辑器的保存按钮被按下的状态,获取vs编辑器所编辑的内容;解析编辑的内容获得备份的内容。按照服务器的异地备份接口地址,通过前述注入进程发送备份的内容至服务器的异地备份接口。服务器的异地备份接口接收备份的内容。将备份的内容写入服务器磁盘。如此,本发明提出的vs编辑器的实时异地备份方法、及存储介质,采用注入进程、监听获取vs编辑器编辑的内容,并将编辑的内容通过解析得到备份的内容,并且通过注入将备份的内容发送至服务器,完成异地实时备份,避免了因数据丢失、误操作删除、文件移动等情况造成的损失,较大程度的提高了工作效率和保证财产安全性,程序员亦无需在工作时分散精力或时间考虑数据安全和备份问题。虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属
技术领域
中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1