一种云文件编辑方法及装置与流程

文档序号:14843684发布日期:2018-06-30 14:31阅读:279来源:国知局
一种云文件编辑方法及装置与流程

本发明涉及计算机技术领域,特别涉及一种云文件编辑方法及装置。



背景技术:

云文件,顾名思义是指存储在云端的文件,也就是存储在非本地的文件,简单点说就是存储在网络中的文件,云文件不需要占用本地的存储空间,有效的节省了本地存储空间,但文件一旦上传至云端之后,若想对该文件进行编辑需要繁琐的过程,因此,如何更加简单快捷的对云文件进行编辑对相关云产品的推广有着极为重要的意义。

目前,对云文件进行编辑的过程为:先将云文件下载至本地,然后通过本地的文件浏览器找到上述下载到本地的文件,之后对该文件进行编辑、保存,最后再通过手动选择的方式,将上述编辑后的文件上传至云端。通过上述方式虽然能够实现对云文件的编辑,但是在对云文件进行编辑的过程中,如何打开文件、何时上传文件均需要用户确定才能完成,这样对云文件进行编辑时,用户操作繁琐,另外,通常情况下,将云文件下载至本地后,该文件在本地存储的文件目录层级比较深,这种情况下,在本地找到上述文件并打开该文件时用户需要进行的多步操作才能完成,更加加剧了用户操作繁琐这一现象。



技术实现要素:

本发明实施例的目的在于提供一种云文件编辑方法及装置,以简化云文件编辑的过程,进而节省编辑时间。

为达到上述目的,本发明实施例公开了一种云文件编辑方法,所述方法包括:

获得待编辑的目标云文件;

监听所述目标云文件的内容是否发生变化;

若为是,向云端上传内容变化后的所述目标云文件。

优选的,所述获得待编辑的目标云文件,包括:

判断本地硬盘或缓存空间中是否存在待编辑的目标云文件;

若存在,从本地硬盘或缓存空间中直接获得所述目标云文件;

若不存在,从云端下载所述目标云文件。

优选的,所述从云端下载所述目标云文件,包括:

根据所述目标云文件的文件类型和文件大小,确定本地硬盘中用于存储所述目标云文件的本地存储路径,从所述云端下载所述目标云文件至所述本地存储路径下;或

根据所述文件大小,分配用于存储所述目标云文件的缓存空间,从云端下载所述目标云文件,并存储至所述缓存空间。

优选的,在向云端上传内容变化后的所述目标云文件完成的情况下,所述方法还包括:

删除所述本地存储路径下存储的所述目标云文件;或

删除所述缓存空间中存储的所述目标云文件。

优选的,在所述监听所述目标云文件的内容是否发生变化之前,所述方法还包括:

在确定获得完整的所述目标云文件后,打开所述目标云文件。

优选的,所述打开所述目标云文件,包括:

根据所述目标云文件的文件类型,匹配用于打开所述目标云文件的目标编辑器;

利用所述目标编辑器,打开所述目标云文件。

优选的,所述监听所述目标云文件的内容是否发生变化,包括:

创建针对所述目标云文件的文件内容变化监听器;

利用所述文件内容变化监听器,监听所述目标云文件的内容是否发生变化。

优选的,所述向云端上传内容变化后的所述目标云文件,包括:

上传内容变化后的所述目标云文件至所述目标云文件对应的云存储路径下,以更新所述云存储路径下存储的云文件。

优选的,所述监听所述目标云文件的内容是否发生变化,包括:

对所述目标云文件进行监听;

判断是否监听到针对所述目标云文件的预设事件,其中,所述预设事件为:用于反映云文件内容发生变化的事件;

若为是,判定监听到所述目标云文件的内容发生变化。

优选的,在所述判断是否监听到针对所述目标云文件的预设事件之前,所述方法还包括:

判断是否接收到针对所述目标云文件的编辑指令或保存指令;

若为是,执行所述判断是否监听到针对所述目标云文件的预设事件的步骤。

优选的,在判定监听到针对所述目标云文件的预设事件的情况下,所述方法还包括:

判断本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔是否大于预设阈值;

若为是,执行所述向云端上传内容变化后的所述目标云文件的步骤。

为达到上述目的,本发明实施例还公开了一种云文件编辑装置,所述装置包括:

获得模块,用于获得待编辑的目标云文件;

监听模块,监听所述目标云文件的内容是否发生变化;

上传模块,用于在所述监听模块监听到所述目标云文件的内容发生变化的情况下,向云端上传内容变化后的所述目标云文件。

优选的,所述获得模块,包括:

第一判断子模块,用于判断本地硬盘或缓存空间中是否存在待编辑的目标云文件;

第一获得子模块,用于在所述第一判断子模块判定结果为是的情况下,从本地硬盘或缓存空间中直接获得所述目标云文件;

第二获得子模块,用于在所述第一判断子模块判定结果为否的情况下,从云端下载所述目标云文件。

优选的,所述第二获得子模块,具体用于:

根据所述目标云文件的文件类型和文件大小,确定本地硬盘中用于存储所述目标云文件的本地存储路径,从所述云端下载所述目标云文件至所述本地存储路径下;或

根据所述文件大小,分配用于存储所述目标云文件的缓存空间,从云端下载所述目标云文件,并存储至所述缓存空间。

优选的,所述装置还包括:

删除模块,用于在所述上传模块向云端上传内容变化后的所述目标云文件完成的情况下,删除所述本地存储路径下存储的所述目标云文件,或删除所述缓存空间中存储的所述目标云文件。

优选的,所述装置还包括:

打开模块,用于在确定获得完整的所述目标云文件后,打开所述目标云文件。

优选的,所述打开模块,具体用于:

根据所述目标云文件的文件类型,匹配用于打开所述目标云文件的目标编辑器;

利用所述目标编辑器,打开所述目标云文件。

优选的,所述监听模块,具体用于:

创建针对所述目标云文件的文件内容变化监听器;

利用所述文件内容变化监听器,监听所述目标云文件的内容是否发生变化。

优选的,所述上传模块,具体用于:

上传内容变化后的所述目标云文件至所述目标云文件对应的云存储路径下,以更新所述云存储路径下存储的云文件。

优选的,所述监听模块,包括:

监听子模块,用于对所述目标云文件进行监听;

第二判断子模块,用于判断是否监听到针对所述目标云文件的预设事件,其中,所述预设事件为:用于反映云文件内容发生变化的事件;

若为是,判定监听到所述目标云文件的内容发生变化。

优选的,所述装置还包括:

第一判断模块,用于判断是否接收到针对所述目标云文件的编辑指令或保存指令;

第一触发模块,用于在所述第一判断模块判断为是的情况下,触发所述第二判断子模块。

优选的,在判定监听到针对所述目标云文件的预设事件的情况下,所述装置还包括:

第二判断模块,用于判断本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔是否大于预设阈值;

第二触发模块,用于在所述第二判断模块判断为是的情况下,触发所述上传模块。

由上可见,本发明实施例提供的方案中,首先获得待编辑的目标云文件,并对该目标云文件的内容进行监听,当监听到目标云文件的内容发生变化时,上传内容发生变化后的目标云文件至云端。应用本发明实施例提供的方案,通过对目标云文件的内容进行监听,若目标云文件的内容发生变化就上传目标云文件至云端,因此,不需要用户再通过手动的方式上传编辑后的云文件至云端,简化了云文件编辑的过程,节省编辑时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的第一种云文件编辑方法的流程示意图;

图2为本发明实施例提供的第二种云文件编辑方法的流程示意图

图3为本发明实施例提供的第三种云文件编辑方法的流程示意图;

图4为本发明实施例提供的第四种云文件编辑方法的流程示意图;

图5为本发明实施例提供的第一种云文件编辑装置的结构示意图;

图6为本发明实施例提供的第二种云文件编辑装置的结构示意图;

图7为本发明实施例提供的第三种云文件编辑装置的结构示意图;

图8为本发明实施例提供的第四种云文件编辑装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面通过具体实施例,对本发明进行详细的说明。

图1为本发明实施例提供的第一种云文件编辑方法的流程示意图,方法包括步骤:

S101:获得待编辑的目标云文件。

为了清楚的对本发明实施例进行说明,首先介绍下云文件的概念,云文件,顾名思义就是存储在云端的文件,也就是存储在非本地的文件,简单点说就是存储在网络中的文件,云文件不需要占用本地的存储空间,有效的节省了本地存储空间。这里所说的文件可以但不限于是:文档、图片、语音、视频。存储在云端的这些文件便称之为云文件,在本发明实施例中,称需要编辑的云文件为目标云文件。

本领域技术人员可以理解的是,在文件上传至云端的时候,上传的文件是存储在云端中的,与在本地硬盘中存储文件相类似的,在云端存储的云文也会对应有一个存储路径,通常我们称这个存储路径为云存储路径,通过该存储路径能够从云端直接找到该云文件。示例性的,假设当前用户确定需要编辑的云文件为“金山云产品手册(初稿).doc”,若该云文件对应的云存储路径为:http://ksyun.com/a/m/金山云产品手册(初稿),通过该云存储路径能够从云端唯一确定出云文件“金山云产品手册(初稿).doc”。在确定述该云文件之后,便依据该云存储路径从云端下载云文件“金山云产品手册(初稿).doc”至本地硬盘中。

考虑到用户工作、学习等方面的需求,可能之前从云端下载过目标云文件,这样用户的本地硬盘中可能已经存在该目标云文件,当然,为了节省本地硬盘空间,用户在使用完毕上述从云端下载的目标云文件后,删除了该文件,或者从来未从云端下载过上述文件,这种情况下,用户本地硬盘中未存储有该目标云文件。

本步骤获得待编辑的目标云文件,可以是获得目标云文件的文件类型、文件大小、文件的标识、存储路径,和/或目标云文件数据本身。

鉴于上述情况,在本发明的一种实现方式中,如图2所示,为本发明实施例提供的第二种云文件编辑方法的流程示意图,在图2所提供的实施例中,获得待编辑的目标云文件的步骤S101,包括步骤:

S1011:判断本地硬盘或缓存空间中是否存在待编辑的目标云文件。

本领域技术人员可以理解的是,在云端存储的云文件都会有属性信息,属性信息可以包含文件:文件类型、文件大小、文件的标识等,对于云客户端来说,云客户端中可能会存储或缓存有文件列表,用户可以根据文件列表选中云文件,并对选中的云文件进行一系列的操作。其中,上述文件列表,可以是云客户端定期从云端获得的,或者是云客户端在连接云端时,从云端获得的,本申请并不对此进行限定。

可以理解的是,文件类型可以理解为:用于表示文件所属类别的信息,如上所述文件的文件类型可以为:文档、图片、语音、视频等;文件大小即为存储该文件所占用的存储空间的大小;文件的标识可以理解为是文件的一种代号,事实上可以理解为是文件的索引,一般情况下能通过该文件索引直接找到该文件,最为简单常用的标识方式就是直接采用该文件的文件名作为文件的标识。

同样的,在本地硬盘或缓存空间中存储的文件也会有属性信息,属性信息可以包括:文件类型、文件大小、文件的标识以及本地存储路径等,文件在下载或上传的过程中,文件的标识在默认情况下通常是不发生变化的,因此,可以通过目标云文件对应的标识,在本地硬盘或缓存空间中查找是否已经存在目标云文件。而本地硬盘一般存储容量较大,可以存储有大量的文件,若全部查找一遍的话,需要耗费相当长的时间。

针对上述的现象,在本发明实施例所提供的方案中,云客户端在安装时都会默认的分配一个用于存储下载文件的本地存储路径,那么,在从云端下载目标云文件时,下载的目标云文件将直接存储至已分配的本地存储路径下或存储至缓存空间中,这样的话,如果需要对该目标云文件进行编辑的话,只需要在上述的本地存储路径下或缓存空间中通过该文件的标识进行查找即可,不需要再在整个本地硬盘中查找了,极大的缩小了查找范围,因此能够节省查找目标云文件的时间。

值得一提的是,对于上述所说的本地硬盘实际上为本地存储空间的一种具体描述,对于手机端来说,本地硬盘可以为内置的手机内存或者是外插的SD卡、TF卡等存储结构,因此,本申请不对本地硬盘的具体结构做进一步限定。

S1012:在所述步骤S1011判定为是的情况下,从本地硬盘或缓存空间中直接获得所述目标云文件。

由上可知,通过目标云文件的标识在本地硬盘或缓存空间中进行查找,若在本地硬盘或缓存空间中查找到与目标云文件的标识相同的文件,则认为在本地硬盘或缓存空间中存在目标云文件,此时,为了节省存储空间,在本地硬盘或缓存空间中存在目标云文件的情况下,将不再进行下载目标云文件的操作,简化了操作步骤,缩短了获取目标云文件的时间。

示例性的,假设当前文件列表中有一个目标云文件,该目标云文件的文件名为“金山云产品手册(初稿).doc”,文件类型为文档、文件大小为1.1M、标识可以直接用文件名,即“金山云产品手册(初稿).doc”;在安装云客户端时分配的本地存储路径“D:\Program Files\Kingsf\Download”下存储有文件名为“金山云产品手册(初稿).doc”的文件、该文件的文件类型为文档,其对应的标识为“金山云产品手册(初稿).doc”。那么,通过上述目标云文件的标识“金山云产品手册(初稿).doc”在本地存储路径“D:\Program Files\Kingsf\Download”下进行查找,由于文件在上传或下载的过程中,文件的标识不会发生改变,而在本地存储路径“D:\Program Files\Kingsf\Download”下存在文件标识与目标云文件的标识相同的文件,因此,可以确定在本地存储路径“D:\Program Files\Kingsf\Download”下存在目标云文件。

S1013:在所述步骤S1011判定为否的情况下,从云端下载所述目标云文件。

通过目标云文件的标识在本地硬盘或缓存空间中查找,若没有查找到,则认为在本地硬盘或缓存空间中不存在目标云文件,此时需要从存储目标云文件的云端下载该目标云文件。

在实际的应用过程中,下载目标云文件可以分为如下两种情况,具体为:

第一种情况:根据所述目标云文件的文件类型和文件大小,确定本地硬盘中用于存储所述目标云文件的本地存储路径,从所述云端下载所述目标云文件至所述本地存储路径下。

本领域技术人员可以理解的是,下载目标云文件实际上就是对目标云文件传输的过程,也就是将目标云文件从一个地方复制到另一个地方的过程,因此,在下载目标云文件时,需要知晓从哪里下载目标云文件,下载后存储至什么地方,上述可知,存储在云端的云文件将对应一个云存储路径,因此,在云文件的属性信息中除了可以包括前述的文件类型、文件大小等信息,还可以包括云文件的云存储路径,这样可以根据属性信息中的云存储路径,将文件上传至云端,下载文件时,可以通过该云存储路径能够直接从云端找到对应的云文件。

就本发明实施例而言,目标云文件是从云端中下载的,而目标云文件的云存储路径是可以从文件的属性信息中知晓的,因此可以根据目标云文件对应的云存储路径从云端找到目标云文件。由于目标云文件是一种数据,而数据在存储时均需要占用相应的存储空间,因此,在从云端下载目标云文件时,需要在本地硬盘中为目标云文件确定一个存储位置,也就是确定用于存储目标云文件的本地存储路径。以电脑端为例,假设在安装云客户端时,在本地硬盘中预先创建一个文件夹“Download”,该文件夹对应的本地存储路径为“D:\Program Files\Kingsf\Download”,默认情况下,通过该云客户端下载的所有文件都会存储在该路径下,但是,为了方便对下载后的云文件进行管理,在上述的文件夹“Download”中,通常还会根据所下载目标云文件的文件类型以及目标云文件的文件大小,确定或建立与目标云文件对应的子文件夹,最终确定一个存储下载后的目标云文件的本地存储路径。

示例性的:假设当前所要下载的目标云文件为“金山云产品手册(初稿).doc”,文件类型为文档、文件大小为1.1M,那么,可根据目标云文件的文件类型以及文件大小,在上述的文件夹“Download”中查找是否已经存在与目标云文件的文件类型“文档”对应的子文件夹“File”,如果文件夹“Download”中已经存在子文件夹“File”,可以将目标云文件直接下载至子文件夹“File”中,该子文件夹“File”对应的本地存储路径为“D:\Program Files\Kingsf\Download\File”,也就是说,最终确定的用于存储目标云文件的本地存储路径为“D:\Program Files\Kingsf\Download\File”。

如果上述文件夹“Download”中不存在子文件夹“File”,那说明在文件夹“Download”还没有存储过该类型的文件,此时,可以直接在文件夹“Download”中新建一个子文件夹“File”,然后将目标云文件下载至子文件夹“File”中,该子文件夹“File”对应的本地存储路径为“D:\Program Files\Kingsf\Download\File”,也就是说,最终确定的用于存储目标云文件的本地存储路径为“D:\Program Files\Kingsf\Download\File”。

如果在上述的过程中,目标云文件下载至本地存储路径为“D:\Program Files\Kingsf\Download\File”下时,本地存储路径对应的本地硬盘的D分区中已被存满,而目标文件还没有完全被下载下来,此时,云客户端可以向用户发出一个提示信息,用来告知用户本地硬盘已没有剩余存储空间,下载失败,此时用户可以通过删除本地硬盘中存储的某些文件来释放出足够的存储空间,进而满足当前下载目标云文件的需求,重新下载目标云文件。或者用户还可以通过外扩存储空间的方式来满足当前下载目标云文件的需求,外扩存储空间可以通过插接U盘、光盘、移动硬盘等方式实现。但需要保证外扩的存储空间不小于当前需要下载的目标云文件的文件大小。例如,当前需要下载的目标云文件的文件大小为1.1M,用户通过终端提供的外设通信接口插接了一个剩余存储空间大小为5GB的U盘,插接后终端会默认为其分配一个本地存储路径,例如分配的本地存储路径为“H:\”,此时云客户端可以向终端发送一个请求以获得外扩存储空间的本地存储路径“H:\”,获得该存储路径后,便可将目标云文件下载至外扩存储空间的本地存储路径“H:\”下,也就是说,最终确定的用于存储目标云文件的本地存储路径为“H:\”。

在确定出本地硬盘中用于存储所述目标云文件的本地存储路径之后,便可以从云端下载目标云文件了,将存储于云端的目标云文件下载至上述确定出的本地存储路径下。

需要说明的是,上述仅为本发明实施例的一种具体示例,对于不同的文件类型,建立的子文件仅文件夹的名称不同,例如,如果目标云文件的文件类型为图片的话,建立的子文件夹名称为“Picture”,相应的本地存储为“D:\Program Files\Kingsf\Download\Picture”;还例如,如果目标云文件的文件类型为语音的话,建立的子文件夹名称为“Music”,相应的本地存储为“D:\Program Files\Kingsf\Download\Music”。当然,上述的所有举例均为一种具体示例,并不构成对本申请目标云文件的文件类型的限定。

第二种情况:根据所述文件大小,分配用于存储所述目标云文件的缓存空间,从云端下载所述目标云文件,并存储至所述缓存空间。

上述可知的是,通常情况下,终端在运行客户端时,会提供用于存储运行数据的缓存空间,同样的,在运行云客户端时也会提供一个缓存空间,该缓存空间用于在暂存下载的云文件,为了不造成缓存空间的浪费,通常在存储下载的云文件时,需要考虑下载的云文件的文件大小,假设当前需要下载的目标云文件为“金山云产品手册(初稿).doc”,文件大小为1.1M,那么在分配缓存空间时,可以根据该目标云文件的文件大小1.1M来从内存中划分出一个大于等于1.1M的缓存空间,该缓存空间将存储从云端下载的目标云文件,当下载完成后便可从该缓存空间中获得目标云文件。

可见,上述两种情况均能够获得目标云文件,因此,在本发明实施例中,并不对获得目标云文件的具体实现方式做明确限定。

S102:监听所述目标云文件的内容是否发生变化。

当云客户端获得待编辑的云文件之后,便开始监听被打开的目标云文件的内容是否发生变化,需要说明的是,在本发明实施例提供的方案中,云客户端具有事件监听的功能。

但是通常情况下,服务端是具有事件监听的功能的,因此,考虑到客户端的开发成本以及运行成本,通常客户端可以调用服务端的监听功能。

在实际应用中,监听所述目标云文件的内容是否发生变化,可以通过创建针对所述目标云文件的文件内容变化监听器;

利用所述文件内容变化监听器,监听所述目标云文件的内容是否发生变化。

以下以手机端为例对上述过程进行说明。

目前,对于搭载Android操作系统的手机端来说,在Android系统中会自带有文件内容变化监听器FileObserver,FileObserver能够监听到指定文件或文件夹的内容变化。对于文件来说,FileObserver能够监听多种类型的事件,例如,ACCESS:文件被访问、MODIFY:文件被修改、ATTRIB:文件属性被修改、CLOSE_WRITE:可写文件被关闭、CLOSE_NOWRITE:不可写文件被关闭、OPEN:文件被打开、MOVED_FROM:文件被移走、MOVED_TO:文件被移来、CREATE:创建新文件、DELETE:文件被删除、DELETE_SELF:自删除,即一个可执行文件在执行时删除自己、MOVE_SELF:自移动,即一个可执行文件在执行时移动自己、CLOSE:文件被关闭等。

本领域技术人员可以理解的是,上述所说的文件内容变化监听器是由程序语言实现的,每监听一个事件都需要特定的代码实现,而对于目标云文件的文件类型不同以及操作目标云文件的侧重点不同,文件内容变化监听器监听事件类型也会有所差别,为了减少客户端运行时对服务端的压力,对于那些在目标云文件的编辑过程中不关心的事件,文件内容变化监听器可以不监听其对应的变化状态。例如,对于文档类型的文件来说,在监听的过程中只关心事件MODIFY:文件被修改、CLOSE_WRITE:可写文件被关闭和MOVED_TO:文件被移来,对于其它一些事件例如,ACCESS、DELETE等并不关心,所以文件内容变化监听器不用监听其对应的变化状态。因此,可以创建一个针对文档类型文件的文件内容变化监听器,创建的文件内容变化监听器所对应的代码与Android系统自带的FileObserver对应的代码有所不同,前者监听事件可以理解为是后者监听事件的子集。根据目标云文件的文件类型不同,可以创建针对该目标云文件的文件内容变化监听器。创建好文件内容变化监听器之后便开始监听目标云文件的内容是否发生变化。

在本发明实施例提供的另一种具体实现方式中,监听所述目标云文件的内容是否发生变化,具体可以为:

对所述目标云文件进行监听;

判断是否监听到针对所述目标云文件的预设事件,其中,所述预设事件为:用于反映云文件内容发生变化的事件;

若为是,判定监听到所述目标云文件的内容发生变化。

由上可知,当云客户端获得待编辑的云文件之后,便开始监听目标云文件的内容是否发生变化,由于目标云文件的文件类型不同以及操作目标云文件的侧重点不同,文件内容变化监听器监听事件的重点也有所不同,为了减少客户端运行时对服务端的压力,对于那些不关心的事件,文件内容变化监听器可以不用监听其变化状态。因此,在本发明实施例提供的方案中,针对不同类型的目标云文件可以预先设定不同的事件。例如,针对文档类型的目标云文件,可以预先设定事件:MODIFY、CLOSE_WRITE和MOVED_TO,这些预先设定的事件即为预设事件。文件内容变化监听器在对文档类型的目标云文件进行监听时,只需要监听这些预设事件,因为只需通过上述的这些预设事件就能够知晓目标云文件的内容是否发生变化,如果监听到上述的预设事件,那么,此时目标云文件的内容发生了变化,即目标云文件的内容被修改。

需要强调的是,上述所列举的预设事件为具体示例,并不限定于此。对于不同文件类型的目标云文件,预设事件可能也相应不同,本申请于此不做明确限定。

S103:在所述步骤S102监听到所述目标云文件的内容发生变化的情况下,向云端上传内容变化后的所述目标云文件。

对于上述的步骤S102来说,当监听到所述目标云文件的内容发生变化时,也就意味着此时的目标云文件的内容此时已经发生了变化,即目标云文件的内容被修改,为了防止内容变化后的目标云文件的数据丢失,在判定目标云文件的内容发生变化的情况下,就将该内容变化后的目标云文件上传至云端。

实际应用中,向云端上传内容变化后的所述目标云文件,可以上传内容变化后的所述目标云文件至所述目标云文件对应的云存储路径下,以更新所述云存储路径下存储的云文件。

由上可知,文件在上传至云端时会对应一个云存储路径,并可以通过该云存储路径从云端直接找到该云文件,因此,通过目标云文件对应的云存储路径便可找到之前目标云文件在云端的存储位置,然后上传的内容变化后的目标云文件至上述存储位置下,以便更新之前的目标云文件。为了保证上传的内容变化后的目标云文件能够更新之前的目标云文件,可以直接将内容变化后的目标云文件上传至之前目标云文件的云存储路径下。这里所说的更新目标云文件事实上就是替换之前的存储在云端的目标云文件,具体来说就是,当内容变化后的目标云文件上传至之前目标云文件的云存储路径下时,由于上传的内容变化后的目标云文件与之前的目标云文件的标识相同,因此,可以将内容变化后的目标云文件替换之前的目标云文件。

除了上述将内容变化后的目标云文件替换之前的目标云文件的方式之外,实际上还可以,在内容变化后的目标云文件上传至之前目标云文件的云存储路径下后,默认自动修改内容变化后的目标云文件的文件版本,以版本升级的形式体现已上传的内容变化后的目标云文件,最简单的可以通过修改已上传的内容变化后的目标云文件的文件名来实现。例如,之前的目标云文件的文件名为“金山云产品手册(初稿).doc”,那么,可以修改已上传的内容变化后的目标云文件的文件名为“金山云产品手册(初稿)(1).doc”,当然,上述的以修改文件名的方式体现已上传的内容变化的目标文件仅为本发明实施例提供的一种示例,本发明实施例并不对其做进一步限定。

由上可见,应用图1提供实施例,通过判断目标云文件是否在本地硬盘或缓存空间中存在,当判断本地硬盘或缓存空间中存在目标云文件时,通过目标云文件的本地存储路径找到该目标云文件,如果在本地硬盘或缓存空间中不存在目标云文件时,便从云端下载该目标云文件至本地或者是缓存空间,并对该目标云文件的内容进行监听,当监听到目标云文件的内容发生变化时,上传内容发生变化后的目标云文件至云端。应用本发明实施例,通过对目标云文件的内容进行监听,若目标云文件的内容发生变化就上传目标云文件至云端,因此,不需要用户再通过手动的方式上传编辑后的云文件至云端,简化了云文件编辑的过程,节省编辑时间。

图3为本发明实施例提供的第三种云文件编辑方法的流程示意图,基于上述图1提供实施例,在所述监听所述目标云文件的内容是否发生变化之前,所述方法还包括如下步骤:

S104:在确定获得完整的所述目标云文件后,打开所述目标云文件。

由上述的步骤S101可以看出,获得目标云文件可以是本地硬盘中存储的与目标云文件相同的文件,也可以是从云端下载的目标云文件。但无论通过何种方式获得目标云文件,均需确保获得的目标云文件是完整的,这里所说的完整是指获得的目标云文件能够被打开;如若获取的目标云文件是不完整的,那后面在打开该目标云文件时可能会出错等异常而导致打开失败。确保获得的目标云文件是完整的,能够避免因获得的目标云文件不完整而使得后续打开目标文件出错的现象。

在确定获得到完整的目标云文件之后,打开获得的目标云文件,进行编辑等操作,在本发明实施例提供的一种具体实现方式中,打开所述目标云文件,可以通过如下步骤实现,具体为:

根据所述目标云文件的文件类型,匹配用于打开所述目标云文件的目标编辑器;

利用所述目标编辑器,打开所述目标云文件。

对于一个计算机、手机或者是其他形式的终端,除了安装云客户端(如,金山企业云盘)外,一般还会安装有许多常见应用的客户端,例如,WPS文档编辑器,Word文档编辑器,Photoshop图片编辑器等等,这些应用的客户端之间是相互独立的,但是,这些应用的客户端可以被相互调用。假设,当前云客户端为金山企业云盘,从金山企业云盘提供的文件列表中选择文件大小为1.1M的文档文件“金山云产品手册(初稿).doc”作为目标云文件,那么,最终获得的目标云文件为“金山云产品手册(初稿).doc”,文件类型为文档、文件大小为1.1M,那么金山企业云可以根据该文件类型“文档”找到能够打开该文件类型的编辑器,如果当前计算机或手机端的已安装WPS文档编辑器或者其他形式的Word文档编辑器,那么此时将WPS文档编辑器或者Word文档编辑器确定为目标编辑器,用于打开上述获得的目标云文件。如果当前计算机或手机端安装多个同一类型的编辑器,如同时安装了WPS文档编辑器和Word文档编辑器,那么在确定目标编辑器时,可以根据用户的喜好,将用户常用的编辑器作为目标编辑器,或者预先设置编辑器的调用顺序,这都是合理的。

在确定好目标编辑器之后,利用目标编辑器打开目标云文件,事实上在上述过程中所确定出的目标编辑器均作为第三方编辑器。虽然类似WPS文档编辑器这样的编辑器,其本身就是一款具有云存储功能的客户端,但目标云文件是通过金山企业云盘获得的,对于金山企业云盘来说,WPS文档编辑器也是第三方编辑器。

还有一种情况是云客户端自身就是一个编辑器,例如,WPS文档编辑器,它是一个文档编辑器,同时还是一款具有云存储功能的客户端,这种情况下,如果WPS文档编辑器获得的目标云文件的文件类型为文档时,由于WPS文档编辑器本身就具有文档编辑器的功能,因此,在打开文档类型的目标云文件时,将不再选择其他形式的文档编辑器,可以直接选用WPS文档编辑器打开目标云文件。这样能够节省打开目标云文件的时间。但如果WPS文档编辑器获得的目标云文件的文件类型不是文档时,与上述调用第三方编辑器类似的,可以根据目标云文件的文件类型选择与该文件类型相匹配的第三方编辑器作为目标编辑器,然后利用选择出的目标编辑器打开目标云文件。

值得说明的是,上述仅用目标云文件的文档类型为文档来进行说明的,实际上,目标云文件的文件类型可以为其他任意形式,比如图片、语音、视频等,由于所打开目标云文件的文件类型不同,则被调用的第三方编辑器也不同,因此,本申请并不对第三方编辑器进行限定。

在通过上述两种方式打开目标云文件之后,云客户端通过文件内容变化监听器能够对打开后的目标云文件的具体内容进行监听,监听过程与上述相同,因此,本发明实施例就不再赘述。

需要说明的是,由于本发明具体实施例的监听方式是通过FileObserver实现对文件操作事件的监控,属于操作系统级别的事件监听,且是有针对性的监听某些重要事件,不同于应用程序对自身进程的监听,因此,支持使用任何第三方编辑器去编辑文件。

综上可见,应用图3提供实施例,通过在确定获得完整的所述目标云文件后,打开所述目标云文件,然后对打开后的目标云文件的内容进行监听,能够更加准确的获得目标云文件的状态变化,进而能够更加准确的将发生变化的目标云文件上传至云端。同时,在本发明实施例提供的方案中,可以通过调用第三方编辑器的方式能够打开任意文件类型的目标云文件,使得云客户端具有较强的易用性以及推广性。

图4为本发明实施例提供的第四种云文件编辑方法的流程示意图,基于上述图1提供实施例,在向云端上传内容变化后的所述目标云文件完成的情况下,所述方法还包括步骤:

S105:删除所述本地存储路径下存储的所述目标云文件,或删除所述缓存空间中存储的所述目标云文件。

由上可知,在获得目标云文件时,若本地硬盘或者是缓存空间中不存在目标云文件,则需要从云端下载目标云文件,由上可知,从云端下载目标云文件的方式有两种,即下载目标云文件存储下载至本地硬盘,以及下载目标云文件至缓存空间中,可以想象的是,如果用户需要对大量的云文件进行编辑的话,那么本地硬盘或缓存空间中存储的云文件将越来越多,长此以往,本地硬盘或缓存空间中的剩余存储空间将越来越小,这将严重影响云客户端的运行速度,同时也无疑会增加服务端的负担。

考虑到上述情况,针对上述下载目标云文件的两种方式,可以在向云端上传内容变化后的所述目标云文件完成后,将存储在上述本地存储路径下目标云文件或者是存储在缓存空间中的目标文件删除,释放存储空间,可见,通过本发明实施例提供的方案,能够有效的释放存储空间,提高云客户端的运行速度,减少运行客户端对服务端的负担。

基于上述图3提供实施例,在所述判断是否监听到针对所述目标云文件的预设事件之前,所述方法还包括如下步骤:

判断是否接收到针对所述目标云文件的编辑指令或保存指令;

若为是,执行所述判断是否监听到针对所述目标云文件的预设事件的步骤。

由上述图3所提供的实施例可知,当目标云文件被与之匹配的目标编辑器打开之后,便开始监听被打开的目标云文件的内容是否发生变化,上述监听的过程是实时进行的,而实时的运行某个功能或代码会给服务端带来较大的运行压力,同时,对于处于打开并编辑状态的目标云文件来说,实际上只有在用户通过目标编辑器执行某种操作才会触发对应的事件,例如,编辑或保存操作,对于云客户端来说,当目标编辑器执行编辑或保存操作时,云客户端将对应的接收到目标编辑器发送的编辑指令或保存指令。只有在目标编辑器执行上述操作时才会生成某些事件,示例性的,通过目标编辑器WPS打开目标云文件“金山云产品手册(初稿).doc”后,增加或修改了其中的内容,此时若WPS执行保存操作,则对应生成MODIFY:文件被修改的事件。

考虑到上述两点,本发明实施例提供的方案中还包括,判断是否接收到针对所述目标云文件的编辑指令或保存指令;若为是,执行所述判断是否监听到针对所述目标云文件的预设事件的步骤。

由上可见,在判断是否监听到针对所述目标云文件的预设事件之前,判断是否接收到针对所述目标云文件的编辑指令或保存指令,只有在接收到针对所述目标云文件的编辑指令或保存指令时,才进一步的判断是否监听到预设事件,不在需要实时的对打开的目标云文件进行监听,因此,应用本发明实施例能够减少服务端的运行压力。

进一步的,在上一实施例判定监听到针对所述目标云文件的预设事件的情况下,本发明实施例所提供的方案还包括步骤:

判断本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔是否大于预设阈值;

若为是,执行所述向云端上传内容变化后的所述目标云文件的步骤。

由上述实施例可知,只要目标编辑器执行编辑或保存操作,就需要执行判断是否监听到针对所述目标云文件的预设事件的步骤,如果被打开的目标云文件的内容发生了变化,那么,没次执行判断是否监听到针对所述目标云文件的预设事件的步骤,都会判定监听到所述目标云文件的内容发生变化,那么相应的每次都会上传一次内容变化的目标文件,由于上传文件至云端需要耗用网络带宽,那么频繁的上传文件至云端会严重占用网络带宽,造成网络拥堵,同时,对于云客户端来说,默认的云端存储空间是有限的,若重复上传文件至云端将浪费云端的存储空间。

综合考虑上述缺点,在上述判定监听到预设事件的情况下,判断本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔是否大于预设阈值;只有在本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔大于预设阈值的情况下,才向云端上传内容变化后的所述目标云文件。例如,预设阈值可以设定为800ms(毫秒),当本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔大于800ms时,才会将内容变化后的目标云文件上传至云端,这样不仅能够防止因用户对目标编辑器的误操作造成的目标云文件重复上传,还能够节省网络带宽,同时节省云端的存储空间。

与图1方法实施例相对应的,图5为本发明实施例提供的第一种云文件编辑装置的结构示意图;所述装置包括:获得模块201、监听模块202和上传模块203。

获得模块201,用于获得待编辑的目标云文件。

进一步的,与图2所示的方法实施例相对应的,如图6所示,为本发明实施例提供的第二种云文件编辑装置的结构示意图,在图6所示的实施例中,所述获得模块201,包括:第一判断子模块2011、第一获得子模块2012和第二获得子模块2013。

第一判断子模块2011,用于判断本地硬盘或缓存空间中是否存在待编辑的目标云文件;

第一获得子模块2012,用于在所述第一判断子模块2011判定结果为是的情况下,从本地硬盘或缓存空间中直接获得所述目标云文件;

第二获得子模块2013,用于在所述第一判断子模块2011判定结果为否的情况下,从云端下载所述目标云文件。

在实际应用中,上述第二获得子模块2013,具体用于:

根据所述目标云文件的文件类型和文件大小,确定本地硬盘中用于存储所述目标云文件的本地存储路径,从所述云端下载所述目标云文件至所述本地存储路径下;或

根据所述文件大小,分配用于存储所述目标云文件的缓存空间,从云端下载所述目标云文件,并存储至所述缓存空间。

监听模块202,监听所述目标云文件的内容是否发生变化。

实际应用中,所述监听模块202,具体用于:

创建针对所述目标云文件的文件内容变化监听器;

利用所述文件内容变化监听器,监听所述目标云文件的内容是否发生变化。

进一步的,监听模块202,包括:监听子模块和第二判断子模块(图中未示出)。

监听子模块,用于对所述目标云文件进行监听;

第二判断子模块,用于判断是否监听到针对所述目标云文件的预设事件,其中,所述预设事件为:用于反映云文件内容发生变化的事件;

若为是,判定监听到所述目标云文件的内容发生变化。

上传模块203,用于在所述监听模块监听到所述目标云文件的内容发生变化的情况下,向云端上传内容变化后的所述目标云文件。

实际应用中,上传模块203,具体用于:

上传内容变化后的所述目标云文件至所述目标云文件对应的云存储路径下,以更新所述云存储路径下存储的云文件。

由上可见,应用图5提供的实施例,通过判断目标云文件是否在本地硬盘或缓存空间中存在,当判断本地硬盘或缓存空间中存在目标云文件时,通过目标云文件的本地存储路径找到该目标云文件,如果在本地硬盘或缓存空间中不存在目标云文件时,便从云端下载该目标云文件至本地或者是缓存空间,并对该目标云文件的内容进行监听,当监听到目标云文件的内容发生变化时,上传内容发生变化后的目标云文件至云端。应用本发明实施例,通过对目标云文件的内容进行监听,若目标云文件的内容发生变化就上传目标云文件至云端,因此,不需要用户再通过手动的方式上传编辑后的云文件至云端,简化了云文件编辑的过程,节省编辑时间。

与图3提供的方法实施例相对应的,如图7所示,为本发明实施例提供的第三种云文件编辑装置的结构示意图。在图5所提供装置的基础上,所述装置还包括:打开模块204。

打开模块204,用于在确定获得完整的所述目标云文件后,打开所述目标云文件。

实际应用中,打开模块204,具体用于:

根据所述目标云文件的文件类型,匹配用于打开所述目标云文件的目标编辑器;

利用所述目标编辑器,打开所述目标云文件。

综上可见,应用图7提供的实施例,通过在确定获得完整的所述目标云文件后,打开所述目标云文件,然后对打开后的目标云文件的内容进行监听,能够更加准确的获得目标云文件的状态变化,进而能够更加准确的将发生变化的目标云文件上传至云端。同时,在本发明实施例提供的方案中,可以通过调用第三方编辑器的方式能够打开任意文件类型的目标云文件,使得云客户端具有较强的易用性以及推广性。

与图4提供的方法实施例相对应的,如图8所示,为本发明实施例提供的第三种云文件编辑装置的结构示意图。在图5所提供装置的基础上,所述装置还包括:删除模块205。

删除模块205,用于在所述上传模块203向云端上传内容变化后的所述目标云文件完成的情况下,删除所述本地存储路径下存储的所述目标云文件,或删除所述缓存空间中存储的所述目标云文件。

应用本发明实施例所提供的装置,能够有效的释放存储空间,提高云客户端的运行速度,减少运行客户端对服务端的负担。

基于上述图7提供的装置实施例,所述装置还包括:第一判断模块和第一触发模块(图中未示出)。

第一判断模块,用于判断是否接收到针对所述目标云文件的编辑指令或保存指令;

第一触发模块,用于在所述第一判断模块判断为是的情况下,触发所述第二判断子模块。

由上可见,在判断是否监听到针对所述目标云文件的预设事件之前,判断是否接收到针对所述目标云文件的编辑指令或保存指令,只有在接收到针对所述目标云文件的编辑指令或保存指令时,才进一步的判断是否监听到预设事件,不在需要实时的对打开的目标云文件进行监听,因此,应用本发明实施例能够减少服务端的运行压力。

进一步的,在上一装置实施例的基础上,装置还可以包括:第二判断模块和第二触发模块(图中未示出)。

第二判断模块,用于判断本次监听到所述预设事件与上一次监听到所述预设事件的时间间隔是否大于预设阈值;

第二触发模块,用于在所述第二判断模块判断为是的情况下,触发所述上传模块。

应用本发明实施例所提供的装置,不仅能够防止因用户对目标编辑器的误操作造成的目标云文件重复上传,还能够节省网络带宽,同时节省云端的存储空间。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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