文件权限的处理方法、装置、电子设备及可读存储介质
专利摘要:本公开提供一种文件权限的处理方法、装置、电子设备及计算机可读存储介质,应用于服务器,所述服务器中部署有共享文件存储系统,所述方法包括:接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。本公开提供的文件权限的处理方法可以防止服务器主动剔除终端时的卡顿现象。
专利说明:
文件权限的处理方法、装置、电子设备及可读存储介质
[0001] 技术领域
[0002] 本公开涉及计算机技术领域,尤其涉及一种文件权限的处理方法、装置、电子设备及计算机可读存储介质。
[0003] 背景技术
[0004] 网络共享文件存储系统可以将多台服务器组成一个超大集群,把这些集群中的磁盘资源整合到一起,形成一个大的资源池,使得终端可以像使用本机的文件系统一样使用远程机的文件系统。
[0005] 相关技术中,网络共享文件存储系统中的服务器主动剔除某个终端时,服务器需要清除该终端拥有的全部访问权限,由于一个终端可能拥有上千万个访问权限,因此,此清除操作的耗时非常长,造成服务器卡顿。
[0006] 发明内容
[0007] 本公开提供文件权限的处理方法、装置、电子设备及计算机可读存储介质,以至少解决上述存在的技术问题。本公开的技术方案如下:
[0008] 根据本公开实施例的第一方面,提供一种文件权限的处理方法,应用于服务器,所述服务器中部署有共享文件存储系统,所述方法包括:
[0009] 接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;
[0010] 若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;
[0011] 若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
[0012] 可选地,在清除所述待剔除的终端具有的所述目标文件的操作权限之前,所述方法还包括:
[0013] 向具有操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其所具有的操作权限;
[0014] 若在预设时长内未接收到该终端返回的文件锁释放响应,则确定该终端为待剔除的终端。
[0015] 可选地,在确定该终端为待剔除的终端之后,所述方法还包括:
[0016] 向该终端发送关闭命令,并将该终端的状态标记为待剔除,其中,所述关闭命令用于指示所述服务器与该终端断开连接。
[0017] 可选地,在清除所述待剔除的终端具有的所述目标文件的操作权限之后,所述方法还包括:
[0018] 将所述待剔除的终端的剔除任务添加到定时任务队列中;
[0019] 每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务;
[0020] 在所述定时任务队列包括所述待剔除的终端的剔除任务的情况下,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限。
[0021] 可选地,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限,包括:
[0022] 在所述待剔除的终端具有的操作权限的数量大于预设数量的情况下,扫描并清除所述待剔除的终端具有的多个操作权限;
[0023] 确定所述待剔除的终端具有的未清除的操作权限的数量;
[0024] 在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,扫描并清除所述待剔除的终端具有的多个未清除的操作权限。
[0025] 可选地,在扫描具有所述操作权限的其他终端之前,所述方法还包括:
[0026] 检测访问终端对所述目标文件执行预定操作的操作权限是否为独占权限;
[0027] 若所述访问终端对所述目标文件执行预定操作的操作权限为独占权限,则检测所述对所述目标文件执行预定操作的操作权限是否属于所述访问终端。
[0028] 可选地,在清除所述待剔除的终端具有的所述目标文件的操作权限之后,所述方法还包括:
[0029] 接收所述待剔除的终端发送的所述目标文件的访问请求;
[0030] 响应于所述访问请求,为所述待剔除的终端重新分配所述目标文件的操作权限。
[0031] 根据本公开实施例的第二方面,提供一种文件权限的处理装置,应用于服务器,所述服务器中部署有共享文件存储系统,所述装置包括:
[0032] 第一接收模块,用于接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;
[0033] 扫描模块,用于若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;
[0034] 第一清除模块,用于若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
[0035] 可选地,所述装置还包括:
[0036] 第一发送模块,用于向具有操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其所具有的操作权限;
[0037] 确定模块,用于若在预设时长内未接收到该终端返回的文件锁释放响应,则确定该终端为待剔除的终端。
[0038] 可选地,所述装置还包括:
[0039] 第二发送模块,用于向该终端发送关闭命令,并将该终端的状态标记为待剔除,其中,所述关闭命令用于指示所述服务器与该终端断开连接。
[0040] 可选地,所述装置还包括:
[0041] 添加模块,用于将所述待剔除的终端的剔除任务添加到定时任务队列中;
[0042] 查询模块,用于每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务;
[0043] 第二清除模块,用于在所述定时任务队列包括所述待剔除的终端的剔除任务的情况下,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限。
[0044] 可选地,第二清除模块包括:
[0045] 第一清除子模块,用于在所述待剔除的终端具有的操作权限的数量大于预设数量的情况下,扫描并清除所述待剔除的终端具有的多个操作权限;
[0046] 确定子模块,用于确定所述待剔除的终端具有的未清除的操作权限的数量;
[0047] 第二清除子模块,用于在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,扫描并清除所述待剔除的终端具有的多个未清除的操作权限。
[0048] 可选地,所述装置还包括:
[0049] 第一检测模块,用于检测访问终端对所述目标文件执行预定操作的操作权限是否为独占权限;
[0050] 第二检测模块,用于若所述访问终端对所述目标文件执行预定操作的操作权限为独占权限,则检测所述对所述目标文件执行预定操作的操作权限是否属于所述访问终端。
[0051] 可选地,所述装置还包括:
[0052] 第二接收模块,用于接收所述待剔除的终端发送的所述目标文件的访问请求;
[0053] 响应模块,用于响应于所述访问请求,为所述待剔除的终端重新分配所述目标文件的操作权限。
[0054] 根据本公开实施例的第三方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例第一方面提供的文件权限的处理方法。
[0055] 根据本公开实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本公开实施例第一方面提供的文件权限的处理方法。
[0056] 本公开的实施例提供的技术方案至少带来以下有益效果:
[0057] 本公开的实施例中,通过本公开的技术方案,服务器主动剔除终端时,首先,服务器接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作;然后,服务器判断对所述目标文件执行预定操作的操作权限不属于所述访问终端的情况下,扫描具有所述操作权限的其他终端;最后,服务器判断扫描出的其他终端中包含待剔除的终端的情况下,清除所述待剔除的终端具有的所述目标文件的操作权限。
[0058] 本公开通过访问终端每次对服务器中的访问目标文件执行预定操作,将所述待剔除的终端具有的不同目标文件的操作权限分开进行清除。不同于相关技术,是将待剔除的终端所具有的全部操作权限在一个时间段内全部清除完毕,本公开将待剔除的终端具有的操作权限分开清除,避免因集中清除待剔除的终端具有的操作权限所导致的服务器服务卡顿的现象,使得用户对共享文件存储系统中文件的访问操作能正常进行。
[0059] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
[0060] 附图说明
[0061] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
[0062] 图1是根据一示例性实施例示出的一种文件权限的处理方法的应用环境示意图;
[0063] 图2是根据一示例性实施例示出的一种文件权限的处理方法的流程图;
[0064] 图3是根据一示例性实施例示出的一种文件权限的处理方法的流程图;
[0065] 图4是根据一示例性实施例示出的一种文件权限的处理方法的流程图;
[0066] 图5是根据一示例性实施例示出的一种文件权限的处理方法的流程图;
[0067] 图6是根据一示例性实施例示出的一种文件权限的处理方法中步骤S53的流程图;
[0068] 图7是根据一示例性实施例示出的一种文件权限的处理方法的流程图;
[0069] 图8是根据一示例性实施例示出的一一种文件权限的处理装置的装置框图;
[0070] 具体实施方式
[0071] 为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
[0072] 需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0073] 图1是根据一示例性实施例示出的一种实施环境的示意图。参照图1,该实施环境包括:终端100和服务器200;其中,终端100包括:终端1,终端2,终端3,……终端n。
[0074] 服务器200可以与一个或者多个终端100通信连接,其中,连接方式可以是有线连接,或者是无线连接,本公开并不对连接方式进行限制。示例地,服务器200可以连接终端1,也可以连接终端1、终端2以及终端3。
[0075] 服务器200中部署有共享文件存储系统;共享文件存储系统中存储有多个文件,形成一个可访问的结构,使得终端集群中的多个终端100均能访问共享文件存储系统中的文件,其中,一个终端100可以具有服务器中多个文件的操作权限(即一个终端100可以访问服务器中的多个文件),也可以只具有服务器中一个文件的操作权限(即一个终端100只能访问服务器中的某个文件)。
[0076] 终端100可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、PC机。本公开并不对终端100进行限制。
[0077] 服务器200可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
[0078] 以上述实施环境为例,相关技术中,服务器主动剔除某个终端时,需要将共享文件存储系统中该终端具有操作权限的所有文件都扫描一遍,并依次清除每个文件中该终端具有的操作权限,直至该终端对所有文件的操作权限均清除完毕。示例地,以终端集群中有三个终端,分别为终端A、终端B以及终端C为例;若待剔除的终端为C终端,C终端对服务器中的一千万个文件都存在操作权限,服务器主动剔除C终端时,需要将这一千万个文件都扫描一遍,并依次清除一千万个文件中的每个文件中C终端具有的操作权限。
[0079] 由上述的技术方案可知,相关技术中,服务器主动剔除终端时,是将该待剔除的终端所具有的全部操作权限在一个时间段内全部清除完毕,由于服务器大多为单线程,因此,在同一时间段内,让服务器扫描成千上万个文件,并清除相应权限的操作耗时非常长,造成服务器服务卡顿的现象,影响用户对共享文件存储系统中文件的访问操作,降低用户的使用感受。
[0080] 为了解决相关技术中服务器主动剔除终端带来的卡顿问题,本公开提出下述方法:
[0081] 参照图2,图2示出了本公开一示例性实施例示出的一种文件权限的处理方法的流程图。如图2所述,该文件权限的处理方法应用于服务器,所述服务器中部署有共享文件存储系统,所述方法具体可以包括以下步骤:
[0082] 步骤S21:接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接。
[0083] 在本实施例中,访问终端是指向服务器中的目标文件发送文件访问请求的终端,其可以是共享文件存储系统中的终端集群内除待剔除的终端外的任一终端;其中,目标文件是指服务器中部署的共享文件存储系统中的任一文件,所述预定操作包括但不限于以下至少之一:对目标文件的查看、对目标文件的共享、对目标文件的删除、对目标文件的修改。
[0084] 在本实施例中,访问终端通过访问目标文件,与服务器建立连接;其中,访问终端每次与服务器建立连接时,服务器都会给访问终端分配一个session标识(会话标识)和seq标识(序列标识),其中,session标识用于唯一标识该客户端,seq标识用于标识该客户端为第几次连接,session标识和seq标识存储于访问终端内;同时,目标文件中也会记载此次分配session标识和seq标识的访问终端具有哪些操作权限。
[0085] 示例地,以终端集群中的A终端为访问终端,服务器中存储的B文件为目标文件为例;若A终端访问B文件,此时A终端与服务器建立连接,服务器在建立连接后执行以下操作:
[0086] 1)服务器建立会话,即给A终端分配标识,以分配的标识A1为例,其中,“A”表征唯一标识A终端的session标识,“1”表征A终端与服务器为第一次连接,相应地,如果终端分配的标识为A2,即代表A终端与服务器为第二次连接。
[0087] 2)B文件中记载A终端具有的所有操作权限,其中,操作权限包括但不限于读权限、写权限、更新权限;例如:A终端第一次访问B文件时,是具有B文件中0-50字节的写权限;A终端第二次访问B文件时,是具有B文件中150-200字节的写权限;此时,B文件中记载有:A1,0-50字节的写权限;A2,150-200字节的写权限。
[0088] 步骤S22:若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端。
[0089] 在本实施例中,服务器判断所述访问终端是否具有对目标文件执行预定操作的操作权限,如果该访问终端没有对目标文件执行预定操作的操作权限,访问终端向服务器发送文件访问请求时,还会向服务器申请对所述目标文件执行预定操作的操作权限,此时,服务器需要回收该目标文件授予出去的所有操作权限,向具有所述操作权限的其他终端发送请求,指示其他终端将其具有的所述目标文件的操作权限释放,则服务器扫描具有所述操作权限的其他终端,即扫描该目标文件中具有操作权限的所有终端。
[0090] 示例地,以多个终端:“A终端、B终端以及C终端”中的A终端为访问终端,服务器中存储的C文件为目标文件,对C文件执行写操作为例;若B终端和C终端具有对C文件写操作的操作权限,A终端不具备对C文件写操作的操作权限,此时,若A终端想要对C文件执行写操作,则向服务器发送C文件的访问请求,由于服务器判断出A终端不具备对C文件写操作的操作权限,则服务器需要回收C文件授予出去的所有操作权限,开始扫描具有C文件的操作权限的终端,即扫描到B终端和C终端。
[0091] 在步骤S22之前,本公开一示例性实施例示出的一种文件权限的处理方法还包括以下步骤:
[0092] 检测访问终端对所述目标文件执行预定操作的操作权限是否为独占权限;
[0093] 若所述访问终端对所述目标文件执行预定操作的操作权限为独占权限,则检测所述对所述目标文件执行预定操作的操作权限是否属于所述访问终端。
[0094] 在本实施例中,独占权限是指只有该终端具有对目标文件执行预定操作的操作权限。示例地,以多个终端:“A终端、B终端以及C终端”中的A终端为访问终端,服务器中存储的C文件为目标文件,对C文件执行写操作为例;若A终端具有对C文件执行写操作的操作权限,且该操作权限为独占权限,则只有A终端能对C文件执行写操作。
[0095] 步骤S23:若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
[0096] 在本实施例中,清除所述待剔除的终端具有的所述目标文件的操作权限,即清除所述目标文件中记载的所述待剔除的终端具有的操作权限。
[0097] 在本实施例中,通过访问终端每次对服务器中的访问目标文件执行预定操作(其中,每次发送访问请求的访问终端可以相同,也可以不相同;每次访问的目标文件可以相同,也可以不相同),将所述待剔除的终端具有的不同目标文件的操作权限分开进行清除。
[0098] 不同于相关技术,是将待剔除的终端所具有的全部操作权限在一个时间段内全部清除完毕,本公开将待剔除的终端具有的操作权限分开清除,避免因集中清除待剔除的终端具有的操作权限所导致的服务器服务卡顿的现象,使得用户对共享文件存储系统中文件的访问操作能正常进行。
[0099] 参照图3,图3示出了本公开一示例性实施例示出的一种文件权限的处理方法的流程图。如图3所述,所述方法除上述步骤S21、步骤S22以及步骤S23外,还包括以下步骤:
[0100] 步骤S31:向具有操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其所具有的操作权限。
[0101] 步骤S32:若在预设时长内未接收到该终端返回的文件锁释放响应,则确定该终端为待剔除的终端。
[0102] 在本实施例中,由于对所述目标文件执行预定操作的操作权限不属于所述访问终端,则所述访问终端对所述目标文件执行预定操作时,服务器需要将所述目标文件的所有操作权限进行回收,此时,服务器向具有目标文件的操作权限的其他终端发送文件锁释放指令,指示该终端释放其所具有的目标文件的操作权限,该终端释放具有的目标文件的操作权限后,服务器将该操作权限发送给访问终端,使得访问终端具有对所述目标文件执行预定操作的操作权限。
[0103] 但是,由于接收到文件锁释放指令的其他终端中可能有终端处于忙碌状态(例如:终端的负载太大),该终端无法及时响应服务器的文件锁释放指令,导致服务器无法回收所述目标文件的操作权限,影响整个共享文件存储系统中终端集群的正常运行,导致用户对共享文件存储系统中的任何文件均不能进行访问;此时,服务器将该终端确定为待剔除的终端,将该终端剔除,释放该终端具有的操作权限,保证服务器的正常运行。
[0104] 在本实施例中,步骤S31和步骤S32是服务器确定待剔除的终端的方法,首先,服务器向具有目标文件的操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其具有的操作权限;然后,服务器判断在预设时长内是否接收到该终端返回的文件锁释放响应,若在预设时长内未接收到该终端返回的文件锁释放响应,服务器确定该终端为待剔除的终端。
[0105] 其中,其他终端是指对目标文件具有文件锁的终端,文件锁可以是独占锁(即只有具有独占锁的终端对目标文件具有操作权限),也可以是非独占锁(即具有非独占锁的多个终端对目标文件均具有操作权限)。文件锁用于当多个终端同时访问一个文件时,防止各终端对同一文件的访问产生竞争状态,例如,具有该目标文件的文件锁的终端对目标文件进行写入操作时,服务器阻止其他任何终端对目标文件进行读写操作。
[0106] 示例地,仍以上述多个终端:“A终端、B终端以及C终端”中的A终端为访问终端,服务器中存储的C文件为目标文件,对C文件执行写操作为例;若B终端和C终端具有对C文件写操作的操作权限(即B终端和C终端具有对C文件的非独占锁),A终端不具备对C文件写操作的操作权限。此时,若A终端想要对C文件执行写操作,则A终端向服务器发送C文件的访问请求,其中,访问请求用于对C文件执行写操作。
[0107] 由于A终端不具备对C文件写操作的操作权限,则服务器需要回收C文件授予出去的所有操作权限,此时,服务器向B终端和C终端发送文件锁释放指令,所述文件锁释放指令用于指示B终端和C终端释放对C文件具有的写操作的操作权限;若预设时长为30S,B终端在5S之后响应了文件锁释放指令,释放了对C文件具有的写操作的操作权限;而C终端在30S后均未响应文件锁释放指令,则服务器将C终端确定为待剔除的终端。
[0108] 参照图4,图4示出了本公开一示例性实施例示出的一种文件权限的处理方法的流程图。如图4所述,所述方法除上述步骤S21、步骤S22、步骤S23、步骤S31以及步骤S32外,还包括以下步骤:
[0109] S41:向该终端发送关闭命令,并将该终端的状态标记为待剔除,其中,所述关闭命令用于指示所述服务器与该终端断开连接。
[0110] 在本实施例中,服务器确定该终端为待剔除的终端之后,服务器向该待剔除的终端发送关闭命令,断开所述待剔除的终端与服务器之间的通信连接,并将该待剔除的终端标记为待剔除,其中,标记为待剔除是在服务器端标记该待剔除的终端的session标识和seq标识为evict状态(逐出状态)。
[0111] 示例地,以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端为例,则服务器断开C终端与服务器的通信连接,并标记C终端的session标识和seq标识为evict状态(例如,标记C终端的session标识和seq标识:“C1”为evict状态)。
[0112] 在本实施例中,通过服务器与该终端断开通信连接,将待剔除的终端具有的操作权限丢弃,便于服务器将待剔除终端所具有的操作权限释放,并将该释放的操作权限发送给访问终端。
[0113] 示例地,仍以上述多个终端:“A终端、B终端以及C终端”中的A终端为访问终端,服务器中存储的C文件为目标文件,对C文件执行写操作为例,服务器将C终端确定为待剔除的终端为例;此时,服务器向C终端发送关闭命令,断开C终端与服务器的通信连接,C终端释放具有的对C文件执行写操作的操作权限,则服务器将该操作权限发送给A终端,A终端执行对C文件的写操作。
[0114] 参照图5,图5示出了本公开一示例性实施例示出的一种文件权限的处理方法的流程图。如图5所述,所述方法除上述步骤S21、步骤S22以及步骤S23外,还包括以下步骤:
[0115] S51:将所述待剔除的终端的剔除任务添加到定时任务队列中。
[0116] 在本实施例中,所述定时任务队列存储于服务器中,将所述待剔除的终端的剔除任务添加到定时任务队列中,即是将拥有标记为待剔除状态的终端添加至定时任务队列中。
[0117] 示例地,仍以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端为例,则将C终端添加到定时任务队列中。
[0118] S52:每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务。
[0119] 在本实施例中,每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务,即是每隔预设时间间隔查询所述定时任务队列中是否包含标记为待剔除状态的终端。示例地,仍以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端为例;若预设时间间隔为五分钟,则服务器每隔五分钟查询所述定时任务队列中是否包含C终端。
[0120] S53:在所述定时任务队列包括所述待剔除的终端的剔除任务的情况下,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限。
[0121] 在本实施例中,清除所述待剔除的终端具有的多个文件的操作权限,即是清除所述待剔除的终端具有的共享文件存储系统中的多个文件的操作权限;其中,一个文件中所述待剔除的终端具有的操作权限可以不止一个。
[0122] 示例地,以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端,服务器的共享文件存储系统中存储有A文件、B文件以及C文件为例;若A文件和B文件中均有C终端具有的多个操作权限,服务器扫描到定时任务队列中包含C终端的情况下时,服务器清除A文件和B文件中C终端具有的多个权限。
[0123] 通过上述技术方案,本公开不仅将待剔除的终端具有操作权限的文件分开扫描,并逐次清除该待剔除的终端具有的当次扫描的目标文件的操作权限。还在服务器中设置有定时任务队列,每隔预设时间间隔,采用定时任务队列清除待剔除的终端具有的多个文件的操作权限,增强待剔除的终端具有的全部操作权限的清除效率,在避免服务器卡顿现象的同时,更快地将待剔除的终端具有的操作权限清除完毕。
[0124] 参照图6,图6示出了本公开一示例性实施例示出的一种文件权限的处理方法中步骤53的流程图。如图6所述,步骤S53包括:
[0125] 步骤S531:在所述待剔除的终端具有的操作权限的数量大于预设数量的情况下,扫描并清除所述待剔除的终端具有的多个操作权限。
[0126] 步骤S532:确定所述待剔除的终端具有的未清除的操作权限的数量。
[0127] 步骤S533:在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,扫描并清除所述待剔除的终端具有的多个未清除的操作权限。
[0128] 在本实施例中,由于待剔除的终端可能存在具有的全部操作权限特别多的情况(例如,待剔除的终端对共享文件存储系统中的一千万个文件都具有操作权限),但是只在访问终端向服务器发送对目标文件的访问请求的触发下,服务器才执行清除目标文件中待剔除的终端具有的操作权限的操作;如果访问终端没有对待剔除的终端具有操作权限的文件进行访问请求,则此次的访问请求也无法触发清除所述待剔除的终端具有的操作权限的操作(即扫描出的其他终端中不包含待剔除的终端,则无法清除所述待剔除的终端具有的目标文件的操作权限),从而延长了清除待剔除的终端具有的全部操作权限的总时长,且如果访问终端没有访问到待剔除的终端具有操作权限的全部文件,则可能存在待剔除的终端的操作权限没有清除完毕的现象。
[0129] 因此,本实施例通过采用上述步骤S61、步骤S62以及步骤S63组成的技术方案,首先,在待剔除的终端具有的操作权限的数量大于预设数量的情况下,服务器扫描并清除所述待剔除的终端具有的多个操作权限;然后,服务器确定所述待剔除的终端具有的未清除的操作权限的数量;在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,服务器扫描并清除所述待剔除的终端具有的多个未清除的操作权限;其中,所述待剔除的终端具有的操作权限的数量为服务器扫描的共享文件存储系统中的至少一个文件中待剔除的终端具有的的操作权限。清除的多个操作权限可以与预设数量相等也可以与预设数量不相等。
[0130] 通过设置定时任务队列,防止访问终端没有对待剔除的终端具有操作权限的全部文件进行访问请求,而带来的对待剔除的终端具有的全部操作权限没有清除完毕的现象,且通过每隔预设时间间隔查询定时任务队列中是否包括所述待剔除的终端的剔除任务,实现分批次的对待剔除的终端具有的全部操作权限进行清除,相较于相关技术中的集中清除待剔除的终端具有的全部操作权限,避免了集中清除带来的服务器卡顿的现象,保证服务器中共享文件存储系统的正常运行,提升用户的使用感受。
[0131] 示例地,仍以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端为例;服务器的共享文件存储系统中存储有A文件、B文件以及C文件为例,对本实施例的过程进行详细说明:若C终端具有操作权限的文件分别为A文件、B文件以及C文件;C终端对A文件、B文件以及C文件所具有的全部操作权限的数量为1000个;以100个为预设数量,且以上述五分钟的时间间隔,清除待剔除的终端具有的多个操作权限为预设数量为例。
[0132] 首先,C终端具有1000个访问权限,大于预设数量100个,清除C终端具有的100个操作权限,由于C终端具有的1000个操作权限还未清除完毕,C终端仍然在定时任务队列中。
[0133] 然后,五分钟的时间间隔之后,服务器查询所述定时任务队列中仍然包括C终端的剔除任务。由于在清除C终端具有的100个操作权限后,此时,C终端具有的未清除的操作权限的数量为900,未清除的操作权限的数量不为零,接着再执行一次清除操作,清除C终端具有的100个操作权限。
[0134] 最后,重复上述清除操作,直至C终端具有的全部操作权限清除完毕,C终端不在定时任务队列中,停止对C终端的扫描清除操作。
[0135] 参照图7,图7示出了本公开一示例性实施例示出的一种文件权限的处理方法的流程图。如图7所述,所述方法除步骤S21、步骤S22以及步骤S23以外,还包括以下步骤:
[0136] 步骤S71:接收所述待剔除的终端发送的所述目标文件的访问请求;
[0137] 步骤S72:响应于所述访问请求,为所述待剔除的终端重新分配所述目标文件的操作权限。
[0138] 在本实施例中,访问请求是指待剔除的终端对已经清除操作权限的目标文件再次申请访问的请求。
[0139] 由于待剔除的终端已经与服务器断开连接,并清除了目标文件的操作权限,因此,对已经断开连接的待剔除的终端的再次连接,服务器响应于所述访问请求,为所述待剔除的终端分配对目标文件执行预定操作的操作权限,使得待剔除的终端能对所述目标文件执行预定操作。其中,操作权限包括但不限于:读权限、写权限、更新权限。
[0140] 在一种实施方式中,待剔除的终端首先与服务器建立连接,服务器为待剔除的终端分配一个session标识(会话标识)和seq标识(序列标识)。然后待剔除的终端再向服务器发送目标文件的访问请求。服务器响应于该访问请求,为待剔除的终端分配对目标文件执行预定操作的操作权限后,可以重新建立一个链表记录,并在该链表记录中存储:待剔除的终端对所述目标文件再次申请的执行预定操作的操作权限、session标识(会话标识)以及seq标识(序列标识)。其中,session标识用于唯一标识该待剔除的终端,seq标识用于标识该待剔除的终端为第几次连接。
[0141] 示例地,以上述多个终端:“A终端、B终端以及C终端”中的C终端为待剔除的终端,服务器的共享文件存储系统中存储有A文件、B文件以及C文件为例;C终端具有对A文件的执行写操作的操作权限,在按照上述方法清除C终端对A文件的执行写操作的操作权限后,如果C终端需要对A文件再次执行写操作,则与服务器建立连接关系,服务器为C终端分配一个session标识(会话标识)和seq标识(序列标识)。然后,C终端向服务器发送A文件的访问请求,服务器为C终端重新分配对A文件的执行写操作的操作权限,并重新建立一个链表记录,并在该链表记录中存储:C终端对A文件再次申请的操作权限、session标识(会话标识)和seq标识(序列标识)。
[0142] 图8是根据一示例性实施例示出的一种文件权限的处理装置的装置框图。参照图8,所述装置应用于服务器,所述服务器中部署有共享文件存储系统,所述装置包括:
[0143] 第一接收模块801,用于接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;
[0144] 扫描模块802,用于若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;
[0145] 第一清除模块803,用于若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
[0146] 所述装置还包括:
[0147] 第一发送模块,用于向具有操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其所具有的操作权限;
[0148] 确定模块,用于若在预设时长内未接收到该终端返回的文件锁释放响应,则确定该终端为待剔除的终端。
[0149] 所述装置还包括:
[0150] 第二发送模块,用于向该终端发送关闭命令,并将该终端的状态标记为待剔除,其中,所述关闭命令用于指示所述服务器与该终端断开连接。
[0151] 所述装置还包括:
[0152] 添加模块,用于将所述待剔除的终端的剔除任务添加到定时任务队列中;
[0153] 查询模块,用于每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务;
[0154] 第二清除模块,用于在所述定时任务队列包括所述待剔除的终端的剔除任务的情况下,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限。
[0155] 第二清除模块包括:
[0156] 第一清除子模块,用于在所述待剔除的终端具有的操作权限的数量大于预设数量的情况下,扫描并清除所述待剔除的终端具有的多个操作权限;
[0157] 确定子模块,用于确定所述待剔除的终端具有的未清除的操作权限的数量;
[0158] 第二清除子模块,用于在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,扫描并清除所述待剔除的终端具有的多个未清除的操作权限。
[0159] 所述装置还包括:
[0160] 第一检测模块,用于检测访问终端对所述目标文件执行预定操作的操作权限是否为独占权限;
[0161] 第二检测模块,用于若所述访问终端对所述目标文件执行预定操作的操作权限为独占权限,则检测所述对所述目标文件执行预定操作的操作权限是否属于所述访问终端。
[0162] 所述装置还包括:
[0163] 第二接收模块,用于接收所述待剔除的终端发送的所述目标文件的访问请求;
[0164] 响应模块,用于响应于所述访问请求,为所述待剔除的终端重新分配所述目标文件的操作权限。
[0165] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0166] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0167] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
权利要求:1.一种文件权限的处理方法,其特征在于,应用于服务器,所述服务器中部署有共享文件存储系统,所述方法包括:
接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;
若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;
若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
2.根据权利要求1所述的处理方法,其特征在于,在清除所述待剔除的终端具有的所述目标文件的操作权限之前,所述方法还包括:
向具有操作权限的其他终端发送文件锁释放指令,所述文件锁释放指令用于指示该终端释放其所具有的操作权限;
若在预设时长内未接收到该终端返回的文件锁释放响应,则确定该终端为待剔除的终端。
3.根据权利要求2所述的处理方法,其特征在于,在确定该终端为待剔除的终端之后,所述方法还包括:
向该终端发送关闭命令,并将该终端的状态标记为待剔除,其中,所述关闭命令用于指示所述服务器与该终端断开连接。
4.根据权利要求1所述的处理方法,其特征在于,在清除所述待剔除的终端具有的所述目标文件的操作权限之后,所述方法还包括:
将所述待剔除的终端的剔除任务添加到定时任务队列中;
每隔预设时间间隔查询所述定时任务队列是否包括所述待剔除的终端的剔除任务;
在所述定时任务队列包括所述待剔除的终端的剔除任务的情况下,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限。
5.根据权利要求4所述的处理方法,其特征在于,执行所述待剔除的终端的剔除任务,以清除所述待剔除的终端具有的多个文件的操作权限,包括:
在所述待剔除的终端具有的操作权限的数量大于预设数量的情况下,扫描并清除所述待剔除的终端具有的多个操作权限;
确定所述待剔除的终端具有的未清除的操作权限的数量;
在所述待剔除的终端具有的未清除的操作权限的数量不为零的情况下,扫描并清除所述待剔除的终端具有的多个未清除的操作权限。
6.根据权利要求1或2所述的处理方法,其特征在于,在扫描具有所述操作权限的其他终端之前,所述方法还包括:
检测访问终端对所述目标文件执行预定操作的操作权限是否为独占权限;
若所述访问终端对所述目标文件执行预定操作的操作权限为独占权限,则检测所述对所述目标文件执行预定操作的操作权限是否属于所述访问终端。
7.根据权利要求1-5中任一所述的处理方法,其特征在于,在清除所述待剔除的终端具有的所述目标文件的操作权限之后,所述方法还包括:
接收所述待剔除的终端发送的所述目标文件的访问请求;
响应于所述访问请求,为所述待剔除的终端重新分配所述目标文件的操作权限。
8.一种文件权限的处理装置,其特征在于,应用于服务器,所述服务器中部署有共享文件存储系统,所述装置包括:
第一接收模块,用于接收访问终端发送的文件访问请求,其中,所述文件访问请求用于请求对目标文件执行预定操作,所述访问终端与所述服务器建立有连接;
扫描模块,用于若对所述目标文件执行预定操作的操作权限不属于所述访问终端,则扫描具有所述操作权限的其他终端;
第一清除模块,用于若扫描出的其他终端中包含待剔除的终端,则清除所述待剔除的终端具有的所述目标文件的操作权限。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1-7中任一所述的方法的步骤。
公开号:CN110602164
申请号:CN201910730445.8A
发明人:高宇 申航 陈二奇
申请人:北京达佳互联信息技术有限公司
申请日:2019-08-08
公开日:2019-12-20