CN116400861A - Nas磁盘的文件删除方法及装置 - Google Patents
Nas磁盘的文件删除方法及装置 Download PDFInfo
- Publication number
- CN116400861A CN116400861A CN202310361825.5A CN202310361825A CN116400861A CN 116400861 A CN116400861 A CN 116400861A CN 202310361825 A CN202310361825 A CN 202310361825A CN 116400861 A CN116400861 A CN 116400861A
- Authority
- CN
- China
- Prior art keywords
- path
- disk
- target file
- file
- deleting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000012217 deletion Methods 0.000 title claims description 110
- 230000037430 deletion Effects 0.000 title claims description 110
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000011084 recovery Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种NAS磁盘的文件删除方法及装置,应用于NAS磁盘和系统磁盘,包括:接收针对NAS磁盘中的目标文件的第一指令;判断第一指令是否对应于对目标文件的删除操作,其中,如果第一指令对应于目标文件的删除操作,则获取与目标文件对应的、系统磁盘中的第一路径;获取第一路径的删除目的路径以及删除目的路径的父目录路径,删除目的路径与删除操作相对应,以及,判断删除目的路径的父目录路径是否是系统磁盘的回收站路径,其中,如果删除目的路径的父目录路径是系统磁盘的回收站路径,则将第一路径的父目录路径修改为删除目的路径的所述父目录路径,以及,将NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
Description
技术领域
本申请涉及领域云存储技术领域,尤其涉及一种NAS磁盘的文件删除方法及装置。
背景技术
随着对计算机外部存储设备的需求日益增大,NAS(Network-attached Storage,网络附属存储)磁盘逐渐成为常用的外部存储设备之一。当挂载NAS磁盘设备时,由于其不存在独立的回收站,导致NAS磁盘上的文件删除后直接进入系统回收站而无法恢复;并且,当用户配置管理项目使用NAS磁盘作为数据存储设备时,缺失独立回收站会导致处于NAS磁盘上的文件与处于系统磁盘上的文件删除操作行为不一致,使得系统异常,同时用户数据无法迁移,并且有数据泄露风险。
发明内容
本申请实施例提供了一种NAS磁盘上的文件删除方法及装置,以解决上述问题。
第一方面,本申请提供了一种NAS磁盘的文件删除方法,应用于NAS磁盘和系统磁盘,包括:接收针对所述NAS磁盘中的目标文件的第一指令;判断所述第一指令是否对应于对所述目标文件的删除操作,其中,如果所述第一指令对应于所述目标文件的删除操作,则获取与所述目标文件对应的、所述系统磁盘中的第一路径;获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应,以及,判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径,其中,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径,以及,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
第二方面,本申请实施例提供了一种NAS磁盘上的文件删除装置,所述装置接收针对所述NAS磁盘中的目标文件的第一指令,所述装置包括:路径获取模块,如果所述第一指令对应于对所述目标文件的删除操作,则配置来获取与所述目标文件对应的、所述系统磁盘中的第一路径,以及,获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应;判断模块,配置来判断所述第一指令是否对应于对所述目标文件的删除操作,以及,判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径;删除模块,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则配置来将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径,以及,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
第四方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的方法。
本申请具有如下优点:
依据本申请实施例,可以在NAS磁盘中建立回收站,并创建和配置与该回收站对应的文件删除逻辑。首先,本申请实施例中,通过路径重命名机制可以有效处理跨卷删除问题,不会发生系统异常,稳定性更好;其次,通过记录和匹配删除操作的线程ID和路径hash值,保证删除操作的准确性;并且,所述方法可以保证NAS磁盘上的用户数据可以随着用户账户迁移,且不会发生数据泄漏。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。这些附图仅描绘了根据本申请的一些实施方式,而不应被视为是对本申请范围的限制。
图1为本申请实施例提供的一种NAS磁盘的文件删除方法的流程图;
图2为本申请实施例提供的一种NAS磁盘的文件删除操作的示意图;
图3为本申请实施例提供的另一种NAS磁盘的文件删除方法的示意图;以及
图4为本申请实施例提供的一种NAS磁盘的文件删除装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图对本申请的一些实施方式作详细说明。在各实施例之间互不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。实施例中描述的方法的步骤可以进行调换,只要能够符合本申请实施例提供的方法所实现的NAS磁盘文件删除目的即可。
本申请提供了一种NAS磁盘上的文件删除方法。所述文件删除方法应用于NAS(Network Attached Storage,网络附属存储)磁盘和系统磁盘。NAS被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌系统软件,可提供跨平台文件共享功能。NAS将存储设备连接到现有的网络上来提供数据和文件服务。NAS存储服务器一般由硬件、操作系统以及其上的文件系统等几个部分组成。
在一些实施例中,区别于通过网络连线访问的共享磁盘(如服务器磁盘、NAS磁盘或网络上其他计算机的共享磁盘)或通过本计算机外部连线连接但可随意插拔的移动磁盘(例如移动硬盘),系统磁盘可以是安装于同一台计算机主板上不可随意插拔或移动的磁盘(例如硬盘)。
图1为本申请实施例提供的一种NAS磁盘上的文件删除方法100的流程图。所述方法100包括如下步骤S101至步骤S107:在步骤S101,接收针对所述NAS磁盘中的目标文件的第一指令;在步骤S102,判断所述第一指令是否对应于对所述目标文件的删除操作,其中,如果所述第一指令对应于所述目标文件的删除操作,则进入步骤S103;在步骤S103,获取与所述目标文件对应的、所述系统磁盘中的第一路径;在步骤S104,获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应;在步骤S105,判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径,其中,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则进入步骤S106;在步骤S106,将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径;在步骤S107,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
下文将针对所述步骤S101至步骤S107分别进行说明。
在步骤S101,接收针对所述NAS磁盘中的目标文件的第一指令。
所述NAS磁盘包含多个用户的文件系统目录,这些文件系统目录也被称为家目录,存放在NAS磁盘的User目录中。每个家目录包含该家目录对应用户的文件的文件系统目录。用户在NAS磁盘上创建的文件被保存于NAS磁盘中该用户的家目录内。每一用户只能访问该用户对应的家目录内的文件。
在一些实施例中,所述第一指令可以是用户利用外部输入设备通过图形界面向操作系统传入的删除指令,例如用户使用鼠标右键单击所述目标文件并在显示的菜单中选择“删除”选项,或者用户使用键盘在命令行界面输入并运行对目标文件的删除指令。所述目标文件例如可以是用户想要对其进行操作的文件,例如,所述目标文件可以是用户想要删除的文件。需要注意的是,所述目标文件也可以是一个文件夹或者目录。在下文中将以“删除指令”作为所述第一指令的示例进行说明。
以上是步骤S101,接下来进入步骤S102。
在步骤S102,判断所述第一指令是否对应于对所述目标文件的删除操作。
在一些实施例中,所述判断所述第一指令是否对应于对所述目标文件的删除操作,可以包括:以删除权限对所述目标文件按顺序执行多个预定操作,其中,如果所述多个预定操作包括预删除操作和预撤销删除操作,则所述第一指令对应于所述目标文件的删除操作。例如,可以使用删除权限对所述目标文件执行预删除操作,在预删除操作之后,再执行预撤销操作。所述预删除操作可以是将所述目标文件的父目录路径修改为对应磁盘的回收站路经。所述预撤销操作可以是将所述目标文件的父目录路径从所述回收站路径重新修改为原来的父目录路径。
如果成功执行了该预删除操作,则可以判定系统对该目标文件具有删除权限,也即所述第一指令对应于所述目标文件的删除操作,随后系统对该目标文件发起预撤销删除操作,确保文件存储状态并未被改变。
在一些实施例中,在系统执行所述目标文件的预撤销删除操作之后,步骤S102还包括:记录所述预删除操作的线程ID和路径hash值。所述预删除操作的线程ID用于标识当前预删除操作线程。所述路径hash值用于标识当前打开的目标文件的路径。
在一些实施例中,在记录所述预删除操作的线程ID和路径hash值的同时,文件删除方法100还可以包括:记录所述预删除操作的会话ID。
应当理解的是,虽然本说明书实施例在步骤S101中指出目标文件存放于NAS磁盘中,但是本申请实施例所针对的目标文件并不限定于存储在NAS磁盘中。例如,在一些可能的实施例中,在步骤S101中打开的目标文件也可以位于系统磁盘,在这种情况下,可以根据该目标文件的路径hash值来确认目标文件所在磁盘是系统磁盘。对系统磁盘上的目标文件的删除操作可以通过如下方式进行:将该目标文件的父目录路径重命名为所述系统磁盘的回收站路径。
在一些实施例中,对于位于不同磁盘的目标文件的删除操作,系统先执行了一个判断目标文件所在磁盘的操作,如果判断出目标文件在系统磁盘,则在该系统磁盘上进行后续删除操作;如果判断出目标文件在NAS磁盘,则在该NAS磁盘上进行后续删除操作。在本说明书的后续部分,如果没有特殊说明,文中出现的“目标文件”是指NAS磁盘上的目标文件。在一些实施例中,这种判断逻辑可以是通过预先设定的MiniFilter文件过滤框架实现的,在本说明书的后续部分中将对此进行进一步说明。
以上是步骤S102,接下来进入步骤S103。
在步骤S103,获取与所述目标文件对应的、所述系统磁盘中的第一路径。
在一些实施例中,所述目标文件位于NAS磁盘上,系统磁盘并不存在所述目标文件。对于NAS磁盘上待删除的所述目标文件,需要首先在系统磁盘上构建与所述目标文件对应的目录结构。例如,所述目标文件位于NAS磁盘上User\A目录中,则在系统磁盘C盘根目录下构建A目录,得到C:\A目录。在本实施例中,所述第一路径可以为C:\A\filename,其中filename可以是所述目标文件的文件名。
在一些实施例中,在步骤S102与步骤S103之间,所述文件删除方法100还可以包括:以删除权限打开所述目标文件;判断打开所述目标文件操作的会话ID与记录的所述预删除操作的会话ID是否匹配。
在一些实施例中,在步骤S102与步骤S103之间,所述文件删除方法100还可以包括:以删除权限打开所述目标文件,并判断打开所述目标文件操作的线程ID和路径hash值是否对应于上文已经记录的所述预删除操作的线程ID和路径hash值,其中,如果打开所述目标文件操作的线程ID和路径hash值分别与已经记录的所述预删除操作的线程ID和路径hash值匹配,则获取所述第一路径。通过判断打开所述目标文件操作的线程ID和路径hash值分别与所述预删除操作的线程ID以及路径hash是否匹配,可以避免不同线程上的文件删除操作混淆,从而提高系统中多个删除操作的准确性。
以上是步骤S103,接下来,进入步骤S104。
在步骤S104中,获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应。
在一些实施例中,所述第一路径的删除目的路径可以是这样一个回收站的路径:该回收站接收被删除的所述第一路径对应的文件。在本申请说明书提供的实施例中,所述对目标文件的删除操作实际上是通过对目标文件的重命名操作实现的,比如将路径为C:\filename的文件的路径重命名为C:\$Recycle.Bin\s\filename,其中s为用于标注唯一OBJECT(比如用户或组)的SID,从而将该文件删除至系统回收站。需要注意的是,所述NAS磁盘上的目标文件并不存在于系统磁盘,对应所述目标文件在系统磁盘上打开的所述第一路径并不对应一个真实存在于系统磁盘的文件,只是表示这样一个文件的路径。在该实施例中,第一路径是C:\filename;该第一路径的删除目的路径是:C:\$Recycle.Bin\s\filename;该删除目的路径的父目录路径是:C:\$Recycle.Bin。
以上是步骤S104,接下来进入步骤S105。
在步骤S105,判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径。
在一些实施例中,由于在步骤S103中构建的所述第一路径位于系统磁盘,因此根据该第一路径获取的删除目的路径也位于系统磁盘。步骤S104和S105的目的在于,由于常见计算机操作系统(比如Windows10)的操作逻辑要求在删除文件时,待删除的文件必须和回收站位于同一磁盘,也就是说待删除的文件必须被重命名至该文件所在磁盘的回收站内。
在本申请提供的实施例中,在对NAS磁盘上的文件进行删除操作时,也需要对系统磁盘上对应的文件(或构建的路径)进行相应的删除操作,从而使NAS磁盘与系统磁盘两者的文件操作相一致。并且,出于使操作逻辑更加统一和简便的考虑,在对文件进行删除操作时所使用的回收站是系统磁盘上的回收站,因此对于NAS磁盘上的目标文件,必须构建与该目标文件对应的系统磁盘上的第一路径,然后根据该第一路径获取所述删除目的路径的所述父目录路径,则所述删除目的路径的所述父目录路径与系统磁盘回收站均位于系统磁盘,从而在对NAS磁盘上的目标文件进行删除操作的同时,也能够对与NAS磁盘的目标文件对应的系统磁盘上的第一路径进行路径变更(即变更至系统磁盘的回收站路径),从而保证NAS磁盘与系统磁盘两者的文件操作相一致。
如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则进入步骤S106和步骤S107。
在步骤S106,将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径。如上文所述,由于所述删除目的路径的父目录路径是系统磁盘的回收站路径,所以通过将第一路径的父目录路径重命名该系统磁盘的回收站路径,可以将所述第一路径(或第一路径对应的文件)放入系统磁盘的回收站。应注意的是,在本申请的实施例中描述的对路径进行“修改”可以理解为对路径进行“重命名”,两者的意思相同或相似。
以上是步骤S106,接下来,进入步骤S107。
在步骤S107,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
在一些实施例中,所述将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站可以通过以下操作实现:将所述NAS磁盘中的所述目标文件的父目录路径重命名为所述NAS磁盘的回收站路径。
图2是本申请实施例提供的一种NAS磁盘的文件删除操作的示意图。需要注意的是,图2中系统磁盘内的文件以灰色表示,因为在本实施例中,系统磁盘可以并不实际存在该文件,而只是获取对应该位置的一个文件的路径,即所述第一路径。如图2中所示,在NAS磁盘上,通过对目标文件的路径进行重命名,可以删除该目标文件,即,将该目标文件放入NAS磁盘的回收站。同时,仍然通过对路径进行重命名的方式,将该目标文件在系统磁盘上对应路径中的父目录(即,第一路径的父目录)重命名为系统磁盘的回收站目录,使第一路径在重命名后位于系统磁盘回收站目录下。
以上是对本申请实施例提供的一种NAS磁盘上的文件删除方法的步骤的说明。接下来,本说明书将基于具体使用场景说明本实施例提供的文件删除方法。图3是本申请实施例提供的基于具体使用场景的一种文件删除方法的示意图,下面结合图3对所述文件删除方法进行说明。
如图3所示,在NAS磁盘上存在NAS回收站,并且在NAS磁盘上存在目标文件x,在系统磁盘上存在C盘回收站。图3所示的文件删除方法包括如下步骤:接收针对所述NAS磁盘中的文件x(即,目标文件)的删除指令;判断所述删除指令是否对应于对所述文件x的删除操作,其中,如果判断出所述请求对应对所述文件x的删除操作,则获取与所述文件x对应的、所述系统磁盘中的第一路径x’;获取所述第一路径x’的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应;判断所述删除目的路径的所述父目录路径是否是系统磁盘的回收站路径,其中,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则将所述第一路径x’的父目录路径修改为所述删除目的路径的所述父目录路径;将所述NAS磁盘中的文件x放入所述NAS磁盘的回收站。
在一个可能的实施例中,用户User1首先在NAS磁盘对应桌面上创建并保存了文件x,文件x的路径为N:\User1\a\b\x,其中N为所述NAS磁盘对应的卷,N:\User1为用户User1的家目录。NAS磁盘挂载于本地计算机,该本地计算机还包括本地磁盘驱动C。用户通过右键点击文件x并选择删除选项对操作系统发出删除文件x的指令。
在一些实施例中,所述针对文件x的删除指令可以被例如微软公司研发的MiniFilter(微过滤)框架截获。MiniFilter有与之匹配的过滤驱动Filter Manager(过滤管理器),Filter Manager提供了各种接口,MiniFilter可以通过向Filter Manager驱动注册需要过滤的操作,并提供指定格式的回调函数让过滤管理器来进行调用。开发者可以按其规范开发文件系统过滤驱动模块,实现对文件请求操作的自定义。当应用层发生某个文件处理请求或操作时,该请求或操作会被I/O管理器(输入/输出管理器)封装为一个IRP(IORequest Package,输入/输出请求包)并传送到底层的文件处理系统。任务完成后,文件处理系统又会将任务完成的信息和参数等封装为一个IRP传回给上层。MiniFilter可以拦截应用层向文件处理系统传递的IRP、对其进行记录并通过自定义的回调函数向应用层传回完成任务的IRP,系统接收到传回IRP可以视为请求或操作被正常完成,由此可以在常规的系统文件操作下插入自己需要的逻辑。由于MiniFilter框架在系统内核态操作,因而保障了文件处理的稳定性和安全性。
在一些实施例中,所述判断所述删除指令是否对应于对所述文件x的删除操作,可以包括:以删除权限对文件x按顺序执行多个预定操作,其中,如果所述多个预定操作包括预删除操作和预撤销删除操作,则所述删除指令对应于所述文件x的删除操作。例如,对文件x调用delete_file函数,如果调用成功,则判断对所述文件x具有删除权限,之后,撤销该调用。
在一些实施例中,可以由MiniFilter根据所述路径hash值来确定文件x位于NAS磁盘,即,与系统磁盘回收站处于不同磁盘。然后,系统关闭文件x的句柄,所述句柄是一个可以唯一地标识文件x的整数。
为了确保打开的待删除文件的文件路径和系统后续使用的回收站路径处于同一磁盘(在本例中即C盘),不能直接打开在NAS磁盘中的文件x,而需要在系统磁盘内构造与文件x相对应的目录结构。根据文件x在NAS磁盘中的路径N:\User1\a\b\x,可以获得所述文件x对应的系统磁盘根目录中的第一路径x’为C:\a\b\x。如图3所示,右上框图中的x’文件以灰色表示,即代表该x’文件并不真实存在,x’仅表示对应于目标文件x在C盘内构造的第一路径x’所能够代表的文件。在本申请中,如果没有特别说明,则x’、x’文件与第一路径x’的内涵相同或相似。
根据所述第一路径x’,可以得到所述删除目的路径的父目录路径为:C盘的回收站路径。例如,该删除目的路径的父目录路径(即C盘的回收站路径)是:C:\$Recycle.Bin\s1,其中,s1为标识当前本地系统用户的SID。
根据上述步骤,所述文件x的所述第一路径x’的删除目的路径的父目录已经被构建为所述系统磁盘的回收站路径。
可以将第一路径x’中的C:\a\b重命名为C:\$Recycle.Bin\s1,其中s1为对应于当前本地系统用户的SID。如图3所示,右下方框图中x’至C盘回收站的虚线箭头表示该路径重命名的过程,其中,虚线代表该过程并不对应一个真实文件被放入回收站的过程。
如图3所示,所述NAS磁盘中的文件x被放入所述NAS磁盘的回收站,其中NAS磁盘的回收站是一个已经存在的目录,且其路径已知,所述将文件x放入NAS磁盘回收站的操作依然可以通过路径重命名的方式实现。例如,将文件x路径中的父目录路径N:\User1\a\b重命名为N:\User1\Recycle\u1,其中N:\User1\Recycle\u1为所述NAS磁盘中属于用户User1的回收站目录,u1为NAS磁盘上对应用户User1的SID。
以上是本申请实施例提供的基于具体使用场景的一种NAS磁盘文件删除方法的详细说明。可以看出,该方法可以有效实现数据的迁移并维护数据安全。
从数据迁移的方面来看,本申请提供的实施例在NAS磁盘上建立了独立回收站并提供了将文件删除至NAS回收站的方法。具体而言,如果不存在NAS磁盘自身的回收站(也即常见的传统的网络磁盘文件回收逻辑),则用户删除NAS磁盘上的文件x后,该文件x会直接进入用户当前使用的计算机系统磁盘回收站,相当于从NAS磁盘中彻底删除。当用户在另一设备登录NAS时,将无法通过回收站访问之前删除的文件x,因为当前设备回收站内不存在文件x的数据,被删除的文件x仅存在于用户删除该文件时所使用的计算机系统磁盘内。而基于本申请提供的NAS磁盘文件删除方法,NAS磁盘上被删除的文件会进入NAS磁盘上该用户的回收站中,且该回收站的路径由针对该用户的唯一SID所标识,用户在不同设备上登录NAS时都可以访问NAS回收站和恢复回收站内的文件或数据,由此实现了NAS磁盘数据的迁移。
从数据安全的角度来看,本申请实施例提供的NAS磁盘回收站以及文件删除方法可以保证不同用户之间的数据不会产生交叉。具体来说,在传统的网络磁盘删除逻辑下,由于NAS磁盘没有独立回收站,则NAS磁盘的用户A删除其NAS磁盘上的文件a时,该文件a会直接进入用户A当前使用的计算机系统磁盘回收站。之后,如果另一用户B也使用该电脑,他将可能通过访问系统本地回收站获得用户A删除的文件a数据,造成泄密。而根据本申请实施例提供的NAS磁盘数据方法,NAS磁盘用户删除文件时,该被删除的文件可以进入NAS磁盘的回收站,而NAS磁盘回收站目录是根据该用户的SID标识的,每个用户的SID均不同,每个用户只能访问该用户目录下的回收站,不同用户不会因为使用同一设备导致数据泄露,确保了数据安全。
在一些实施例中,还可以采用应用层Hooking的方式来监控和处理针对NAS磁盘上文件的删除指令,作为上述MiniFilter的替代方案。Hooking指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术,而处理被拦截的函数调用、事件、消息的代码,被称为Hook(钩子)。
在一些实施例中,以Windows系统为例,可以通过配置DLL(动态链接库,通常包含其他程序可以使用的功能和过程)或EXE可执行文件(包含入口点或代码中应该由操作系统开始执行应用程序的部分)来实现Hooking。例如,在DLL文件中写入代码,该代码用于在接收针对NAS磁盘上文件的删除指令后,对该待删除文件进行上文描述的文件删除操作。Hook可以被配置为,只要进程接收到可以发出Hook的消息(对应于用户或系统发起的删除文件请求)后,该Hook的DLL文件会被操作系统自动或强行加载到该进程中开始运行,具体的文件删除逻辑与上述MiniFilter框架下的文件删除逻辑相同,在此不再赘述。
应当理解的是,在实际应用中,在不同操作系统中Hook文件可以有不同的配置和形式,不同的Hooking方法中具体的Hook文件执行过程也可以不同,以上描述的利用Hooking技术进行NAS磁盘文件删除过程仅是示例性的,而不应视为限制本申请的范围。并且,Hooking技术和前述的MiniFilter框架也仅是所述NAS磁盘文件删除方法的两种优选方案,其他可以实现对消息或指令的拦截和处理以完成本说明书中所述NAS磁盘文件删除方法的工具或技术,也应涵盖在本申请的保护范围内。
以上是对本申请实施例提供的NAS磁盘文件删除方法的示例性说明。本申请实施例还提供了一种NAS磁盘文件删除装置,所述装置接收针对所述NAS磁盘中的目标文件的第一指令。图4为本申请实施例提供的一种NAS磁盘文件删除装置400的结构示意图。如图4所示,所述装置400包括:路径获取模块401、判断模块402和删除模块403。所述装置400还包括指令接收单元,用于接收针对NAS磁盘中的目标文件的第一指令。下面将分别对装置400中各模块做具体说明。
所述判断模块402被配置来:判断所述第一指令是否对应于对所述目标文件的删除操作。
所述判断所述第一指令是否对应于对所述目标文件的删除操作,可以包括:根据所述第一指令,以删除权限对所述目标文件按顺序执行多个预定操作,其中,如果所述多个预定操作包括预删除操作和预撤销删除操作,则判断所述第一指令对应于所述目标文件的删除操作。所述判断所述第一指令是否对应于对所述目标文件的删除操作的具体过程和步骤在上述文件删除方法100中的步骤S102中有详细描述,具体内容可参见S102,在此不再赘述。
所述判断模块402还可以被配置来:记录所述预删除操作的线程ID和路径hash值。
所述判断模块402还可以被配置来:在路径获取模块401获取所述第一路径之前,以删除权限打开所述目标文件;判断打开所述目标文件操作的线程ID和路径hash值是否分别与已经记录的所述预删除操作的线程ID和路径hash值相匹配,其中,如果打开所述目标文件操作的线程ID和路径hash值分别与已经记录的所述预删除操作的线程ID和路径hash值匹配,则获取与所述目标文件对应的、所述系统磁盘中的第一路径。所述判断打开所述目标文件操作的线程ID和路径hash值是否分别与已经记录的所述预删除操作的线程ID和路径hash值相匹配的具体过程在上述文件删除方法100中有详细描述,具体内容可参见方法100,在此不再赘述。
所述判断模块402还可以被配置来:判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径。
路径获取模块401被配置来:如果所述第一指令对应于对所述目标文件的删除操作,则获取与所述目标文件对应的、所述系统磁盘中的第一路径。所述获取所述第一路径的具体过程和步骤在上述文件删除方法100中有详细描述,在此不再赘述。
所述路径获取模块401还可以被配置来:获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应。所述获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径的具体过程和步骤在上述文件删除方法100中有详细描述,在此不再赘述。
所述删除模块403被配置来:如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则将所述第一路径中的父目录路径修改为所述删除目的路径的所述父目录路径,以及,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
所述删除模块403还可以被配置为:将所述目标文件的父目录路径修改为所述NAS磁盘的回收站路径。
所述删除模块修改第一路径以及将目标文件放入回收站的具体过程和步骤在上文的文件删除方法100中有详细描述,在此不再赘述。
本申请还提供一种存储介质,该存储介质为计算机可读存储介质。该存储介质存储有计算机程序,所述计算机程序在被执行时可以完成上述示例性实施例中所述的NAS磁盘文件删除方法的全部或部分步骤。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其中,所述处理器被配置为执行上述示例性实施例所述的NAS磁盘文件删除方法,具体执行方式已在有关该文件删除方法的实施例中进行了详细描述,此处不再做详细说明。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生依照本申请的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(Advanced RISC Machines,ARM)架构的处理器。
上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质可以包括只读存储器和随机访问存储器。该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以包括随机访问存储器(RandomAccess Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM均可用。例如,静态随机访问存储器(Static RAM,SRAM)、动态随机访问存储器(DynamicRandom Access Memory,DRAM)、同步动态随机访问存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机访问存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机访问存储器(Enhanced SDRAM,ESDRAM)、同步链接动态随机访问存储器(Synclink DRAM,SLDRAM)和直接内存总线随机访问存储器(Direct Rambus RAM,DR RAM)。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中描述的或在此以其他方式描述的任何过程或方法可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中描述的或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的示例性实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请记载的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种NAS磁盘的文件删除方法,应用于NAS磁盘和系统磁盘,所述方法包括:
接收针对所述NAS磁盘中的目标文件的第一指令;
判断所述第一指令是否对应于对所述目标文件的删除操作,其中,
如果所述第一指令对应于所述目标文件的删除操作,则获取与所述目标文件对应的、所述系统磁盘中的第一路径;
获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应;以及
判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径,其中,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径;以及
将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
2.根据权利要求1所述的方法,其中,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站,包括:
将所述目标文件的父目录路径修改为所述NAS磁盘的回收站路径。
3.根据权利要求1所述的方法,其中,所述判断所述第一指令是否对应于所述目标文件的删除操作,包括:
根据所述第一指令,以删除权限对所述目标文件按顺序执行多个预定操作,其中,
如果所述多个预定操作包括预删除操作和预撤销删除操作,则所述第一指令对应于所述目标文件的删除操作。
4.根据权利要求3所述的方法,其中,所述方法还包括:
记录所述预删除操作的线程ID和路径hash值。
5.根据权利要求4所述的方法,其中,在获取与所述目标文件对应的、所述系统磁盘中的第一路径之前,所述方法还包括:
以删除权限打开所述目标文件;
判断打开所述目标文件操作的线程ID和路径hash值是否对应于记录的所述预删除操作的线程ID和路径hash值,其中,
如果打开所述目标文件操作的线程ID和路径hash值与记录的所述预删除操作的线程ID和路径hash值匹配,则获取与所述目标文件对应的、所述系统磁盘中的第一路径。
6.一种NAS磁盘文件的删除装置,可部署于系统磁盘所在电子设备、NAS磁盘或者其他外部设备,所述外部设备与所述系统磁盘电子设备和所述NAS磁盘之间可进行通信和传输,所述装置接收针对所述NAS磁盘中的目标文件的第一指令,其中,所述装置包括:
路径获取模块,如果所述第一指令对应于对所述目标文件的删除操作,则配置来获取与所述目标文件对应的、所述系统磁盘中的第一路径,以及,
获取所述第一路径的删除目的路径以及所述删除目的路径的父目录路径,所述删除目的路径与所述删除操作相对应;
判断模块,配置来判断所述第一指令是否对应于对所述目标文件的删除操作,以及,
判断所述删除目的路径的所述父目录路径是否是所述系统磁盘的回收站路径;
删除模块,如果所述删除目的路径的所述父目录路径是所述系统磁盘的回收站路径,则配置来将所述第一路径的父目录路径修改为所述删除目的路径的所述父目录路径,以及,
将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站。
7.根据权利要求6所述的文件删除装置,其中,将所述NAS磁盘中的所述目标文件放入所述NAS磁盘的回收站,包括:
将所述目标文件的父目录路径修改为所述NAS磁盘的回收站路径。
8.根据权利要求6所述的文件删除装置,其中,所述判断所述第一指令是否对应于对所述目标文件的删除操作,包括:
根据所述第一指令,以删除权限对所述目标文件按顺序执行多个预定操作,其中,
如果所述多个预定操作包括预删除操作和预撤销删除操作,则判断所述第一指令对应于所述目标文件的删除操作。
9.根据权利要求8所述的文件删除装置,其中,所述判断模块还被配置来:
记录所述预删除操作的线程ID和路径hash值。
10.根据权利要求6所述的文件删除装置,其中,在获取所述第一路径之前,所述判断模块还被配置来:
以删除权限打开所述目标文件;
判断打开所述目标文件操作的线程ID和路径hash值是否对应于记录的所述预删除操作的线程ID和路径hash值,其中,
如果打开所述目标文件操作的线程ID和路径hash值与记录的所述预删除操作的线程ID和路径hash值匹配,则获取与所述目标文件对应的、所述系统磁盘中的第一路径。
11.一种计算机可读存储介质,其中,所述计算机可读存储介质包括存储的程序,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至5中任意一项所述的NAS磁盘的文件删除方法。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310361825.5A CN116400861A (zh) | 2023-03-30 | 2023-03-30 | Nas磁盘的文件删除方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310361825.5A CN116400861A (zh) | 2023-03-30 | 2023-03-30 | Nas磁盘的文件删除方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116400861A true CN116400861A (zh) | 2023-07-07 |
Family
ID=87009853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310361825.5A Pending CN116400861A (zh) | 2023-03-30 | 2023-03-30 | Nas磁盘的文件删除方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116400861A (zh) |
-
2023
- 2023-03-30 CN CN202310361825.5A patent/CN116400861A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6889376B1 (en) | Method for migrating from one computer to another | |
US8245216B2 (en) | Patch management system | |
US6795835B2 (en) | Migration of computer personalization information | |
EP1374017B1 (en) | System and method for restoring computer systems damaged by a malicious computer program | |
US6330669B1 (en) | OS multi boot integrator | |
US8407700B2 (en) | Methods and systems for merging virtualization sublayers | |
RU2409838C2 (ru) | Архивирование данных в виртуальном прикладном окружении | |
US7519963B1 (en) | Layered computing systems and methods with location exclusions | |
US10613938B2 (en) | Data virtualization using copy data tokens | |
US9021309B2 (en) | Method and system for creating virtual editable data objects by using a read-only data set as baseline | |
US20120216070A1 (en) | Method and apparatus for realizing application high availability | |
US20070192700A1 (en) | Support of remote software applications | |
JP5483116B2 (ja) | メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム | |
US10691659B2 (en) | Integrating copy data tokens with source code repositories | |
TW200525358A (en) | Method and apparatus for smart memory pass-through communication | |
US20120011507A1 (en) | Maintenance system, maintenance method and program for maintenance | |
US7818557B2 (en) | Method for re-imaging a computer system | |
US9910662B2 (en) | Selectively migrating applications during an operating system upgrade | |
US20210141632A1 (en) | Automated software patching for versioned code | |
CN114168286A (zh) | 一种基于Windows的应用软件的迁移方法 | |
JP5423063B2 (ja) | 情報処理装置と方法とプログラム | |
JPWO2005103909A1 (ja) | セキュリティ保全方法およびデータ蓄積装置、セキュリティ保全サーバ、及びそのプログラムを記録した記録媒体 | |
US6260140B1 (en) | Operating system multi boot integrator | |
CN116400861A (zh) | Nas磁盘的文件删除方法及装置 | |
US9910667B2 (en) | Segregating a monolithic computing system into multiple attachable application containers based on application boundaries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |