掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明实施例涉及计算机技术领域,尤其涉及文件删除方法、装置、设备、系统及存储介质。

背景技术

随着移动互联网时代的不断发展,各种内容分享业务层出不穷,吸引了大量的用户。其中,内容分享可包括如文档、图片、音频以及视频等文件的分享。

随着用户数量的增长,用户上传的文件的数量也在持续高速地增长,其中有一定比例的文件可能是被用户标记删除或违规废弃的文件,目前业务方会一直保存这些文件。类似上述文件的长期保存可能会带来用户隐私泄漏问题和内容安全问题等隐患,同时这部分文件占据的存储空间也极大地提高了企业的运营成本。

因此,亟需提供一种合理的文件删除方案对上述类型的文件进行删除。

发明内容

本发明实施例提供了文件删除方法、装置、设备、系统及存储介质,可以合理地对文件进行删除。

第一方面,本发明实施例提供了一种文件删除方法,该方法包括:

通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,所述预设数据库中包含文件存储系统中存储的文件的文件信息;

通过所述生产者进程将所述目标文件信息对应的目标文件存储信息写入预设消息队列中;

通过消费者进程读取所述预设消息队列中的目标文件存储信息,根据所述目标文件存储信息生成对应的删除请求,并将所述删除请求发送至所述文件存储系统,用于指示所述文件存储系统根据所述删除请求对相应的目标文件进行删除处理。

第二方面,本发明实施例提供了一种文件删除装置,该装置包括:

文件信息查询模块,用于通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,所述预设数据库中包含文件存储系统中存储的文件的文件信息;

文件存储信息写入模块,用于通过所述生产者进程将所述目标文件信息对应的目标文件存储信息写入预设消息队列中;

删除模块,用于通过消费者进程读取所述预设消息队列中的目标文件存储信息,根据所述目标文件存储信息生成对应的删除请求,并将所述删除请求发送至所述文件存储系统,用于指示所述文件存储系统根据所述删除请求对相应的目标文件进行删除处理。

第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的文件删除方法。

第四方面,本发明实施例提供了一种文件删除系统,包括生产者进程、消费者进程和消息中间件,其中,所述消息中间件中包含预设消息队列,所述系统基于本发明实施例提供的文件删除方法进行文件删除。

第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的文件删除方法。

本发明实施例中提供的文件删除方案,通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,预设数据库中包含文件存储系统中存储的文件的文件信息,通过生产者进程将目标文件信息对应的目标文件存储信息写入预设消息队列中,通过消费者进程读取预设消息队列中的目标文件存储信息,根据目标文件存储信息生成对应的删除请求,并将删除请求发送至文件存储系统,用于指示文件存储系统根据删除请求对相应的目标文件进行删除处理。通过采用上述技术方案,可以对存储在文件存储系统中的用户上传的文件进行及时删除,能够解决文件长期存储所带来的安全隐患以及降低运营成本,通过设置预设消息队列,将待删除文件的筛选过程以及删除过程进行分离,可以保证文件删除的可靠性。

附图说明

图1为本发明实施例提供的一种文件删除方法的系统架构示意图;

图2为本发明实施例提供的一种文件删除方法的流程示意图;

图3为本发明实施例提供的又一种文件删除方法的流程示意图;

图4为本发明实施例提供的又一种文件删除方法的系统架构示意图;

图5为本发明实施例提供的另一种文件删除方法的流程示意图;

图6为本发明实施例提供的一种文件删除装置的结构框图;

图7为本发明实施例提供的一种计算机设备的结构框图;

图8为本发明实施例提供的一种文件删除系统的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

图1为本发明实施例提供的一种文件删除方法的系统架构示意图。具体的,参考图1,该系统架构中包括文件删除系统10、预设数据库20和文件存储系统30。其中,文件删除系统10中包含生产者进程、消费者进程和预设消息队列,文件删除系统10可以集成在独立的设备中,也可以由多个设备配合实现,具体不做限定;预设数据库20可以是单个数据库,也可以是数据库集群或者是分布式数据库中的一个或多个数据库,具体不做限定;文件存储系统30可以是单个存储设备,也可以是分布式存储系统,或非分布式的关系型的内存和物理存储工具等,具体不做限定。

在一些实际的应用场景中,可以在文件存储系统中存储用户上传的文件,文件类型不做限定,可包括如文档、图片、音频以及视频等,可以由具体业务场景来确定。例如,短视频业务场景,用户上传的短视频文件可以存储在上述文件存储系统中。预设数据库中可以存储文件存储系统中存储的文件的文件信息,文件信息中包含的具体内容不做限定。

相关技术中,文件存储系统中的文件,即使已经被用户标记为删除或处于违规废弃状态都会长期保存,可能会带来用户隐私泄漏问题和内容安全问题等隐患,同时这部分文件占据的存储空间也极大地提高了企业的运营成本。本发明实施例提供了一种文件删除方案,可以合理地对部分文件进行删除。

图2为本发明实施例提供的一种文件删除方法的流程示意图,该方法可以由文件删除装置执行,其中该装置可由软件和/或硬件实现,一般可集成在一个或多个计算机设备中。如图2所示,该方法包括:

步骤201、通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,所述预设数据库中包含文件存储系统中存储的文件的文件信息。

示例性的,可将文件存储系统中存储的文件的文件信息存储在业务系统的数据库中,该数据库可以是关系数据库,如关系型数据库管理系统MySQL。在一些实际的应用场景中,业务系统的许多线上服务也需要对数据库进行访问,如根据文件信息进行文件搜索或文件推荐等服务,为了避免文件删除过程对已有服务产生影响,本发明实施例中的预设数据库可以是在业务系统的数据库基础上新增的一个或多个从数据库。

示例性的,文件信息可以包括文件名称、文件大小、文件上传时间、文件的上传者信息、文件状态以及文件所在地区等等,一条文件信息可以对应一个存储在文件存储系统中的文件。其中,文件的上传者信息可包括上传者身份标识、上传者等级、上传者的年龄或职业等个人属性以及上传者是否处于预设白名单中等等;文件状态可包括文件是否被用户(也即文件的上传者)主动删除、文件是否被运营方删除、文件的最近访问时间以及文件是否包含违规内容等等;文件所在地区可包括文件上传时所属国家或地区,还可包括负责存储文件的设备所在区域等。

示例性的,可以基于上述的一种或多种文件信息的组合来设计预设筛选规则,预设筛选规则可以在文件删除系统中提前配置,也可以根据动态获取的配置信息来设定。一般的,预设数据库中可以存储大量文件的文件信息,针对大量文件的文件信息,可以分批进行查询(例如,共10万条数据,每次查询5千条),在查询时,可以通过生产者进程启动一个或多个线程进行查询,例如当预设数据库为多个从库时,一个线程可以负责对应一个从数据库。对于当前的文件信息,若确定满足预设筛选规则,则可将当前的文件信息记为目标文件信息,可以理解的是,目标文件信息的数量可以存在多条。

步骤202、通过所述生产者进程将所述目标文件信息对应的目标文件存储信息写入预设消息队列中。

示例性的,文件存储信息可以包含在文件信息中,也可以与文件信息存在映射关系,该映射关系一般可以保存在预设数据库中,也可以保存在文件删除系统中。文件存储信息具体可以是文件存储路径或文件存储标识等信息,文件存储系统可以根据文件存储信息找到对应的文件并对文件进行删除等处理。

示例性的,目标文件信息的数量可能也较多,这时,可以通过生产者进程分批获取目标文件信息对应的目标文件存储信息(例如,目标文件信息共1万条,每次获取1千条目标文件信息对应的目标文件存储信息)。在分批获取的过程中,可以根据查询结果进行排序,按照排序情况进行分批获取,如优先获取排序靠前的目标文件信息对应的目标文件存储信息。其中,排序依据可以根据预设筛选规则来确定,例如预设筛选规则中包含被用户标记为删除的时间距离当前时间的第一时长大于第一时长阈值,那么可以依据第一时长降序排列。当然,也可根据查询时序来确定,如先被查询到的目标文件信息优先获取对应的目标文件存储信息。

示例性的,将需要进行删除的文件的文件存储信息写入预设消息队列后,生产者进程可以无需关心后续流程,也即无论当前文件存储信息对应的文件是否被删除,生产者进程都可以继续将下一个文件存储信息写入预设消息队列,此外,通过将文件存储信息写入预设消息队列,可以防止下游消费速度慢导致待删除的文件信息的丢失,也可以防止文件存储系统在流量高峰期删除失败导致的漏删除问题发生,从而保证删除的可靠性。

示例性的,预设消息队列可以是设备内部自定义的消息队列;还可以是消息中间件中的消息队列(Message Queue,MQ),例如可以是卡夫卡(Kafka)、火箭消息队列(RocketMQ)或野兔消息队列(RabbitMQ)等。

步骤203、通过消费者进程读取所述预设消息队列中的目标文件存储信息,根据所述目标文件存储信息生成对应的删除请求,并将所述删除请求发送至所述文件存储系统,用于指示所述文件存储系统根据所述删除请求对相应的目标文件进行删除处理。

示例性的,可以通过消费者进程启动一个或多个线程对预设消息队列中的目标文件存储信息进行消费。消费者进程在从预设消息队列中获取到当前的目标文件存储信息后,可以根据文件存储系统的要求组装当前的目标文件存储信息所对应的目标文件的删除请求,并将该删除请求发送至文件存储系统,供文件存储系统对相应的目标文件进行删除处理。通过将待删除文件的筛选过程和删除过程进行分离,可以避免查询到的需要删除的文件的删除请求无法成功发送到文件存储系统,导致出现漏删或需要二次查询,保证文件删除的可靠性和删除效率。可选的,还可设置缓存队列,通过消费者进程读取预设消息队列中的第一目标文件存储信息并发送相应的删除请求后,可以将第一目标文件存储信息写入缓存队列中,在接收到文件存储系统返回的第一目标文件存储信息对应的第一目标文件的删除成功信息时,从缓存队列中删除第一目标文件存储信息,从而可以进一步保证目标文件被删除,进一步提升可靠性。

示例性的,删除请求中可以包含目标文件存储信息,如前文所述,文件存储信息具体可以是文件存储路径或文件存储标识等信息,文件存储系统可以根据当前接收到的删除请求中包含的目标文件存储信息查找到相应的目标文件,并删除目标文件。

本发明实施例中提供的文件删除方法,通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,预设数据库中包含文件存储系统中存储的文件的文件信息,通过生产者进程将目标文件信息对应的目标文件存储信息写入预设消息队列中,通过消费者进程读取预设消息队列中的目标文件存储信息,根据目标文件存储信息生成对应的删除请求,并将删除请求发送至文件存储系统,用于指示文件存储系统根据删除请求对相应的目标文件进行删除处理。通过采用上述技术方案,可以对存储在文件存储系统中的文件进行及时删除,能够解决文件长期存储所带来的安全隐患以及降低运营成本,通过设置预设消息队列,将待删除文件的筛选过程以及删除过程进行分离,可以保证文件删除的可靠性。

在一些实施例中,在所述通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息之前,还包括:读取配置文件中的最新的筛选配置信息;根据所读取到的筛选配置信息确定预设筛选规则。这样设置的好处在于,可以灵活地实现预设筛选规则的变更,适应业务更新。示例性的,预设筛选规则可以完全基于所读取到的筛选配置信息进行制定,也可根据文件删除系统中固有的预设筛选配置信息和从配置文件中读取到的筛选配置信息共同制定,具体不做限定,可根据实际需求进行设置。上述步骤可以由生产者进程执行,也可以由其他进程或线程执行,具体不做限定。

在一些实施例中,可以在确定文件删除事件被触发时,通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息。其中,文件删除事件的触发条件不做限定,可以定时触发、人工触发或在满足设定触发条件时自动触发,设定触发条件例如可以是文件存储系统中的剩余存储容量小于预设存储容量阈值等。

在一些实施例中,所述读取配置文件中的最新的筛选配置信息,包括:读取配置文件中的最新的筛选配置信息和最新的定时任务信息;其中,所述通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,包括;根据当前的定时任务信息确定文件删除事件被触发时,通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息。这样设置的好处在于,可以灵活地实现定时任务信息的变更,适应业务更新。其中,定时任务信息中例如可包括时间点信息或时间间隔信息等,例如,每天凌晨2点或每隔2天等,可以根据实际的业务需求进行设置或调整。

在一些实施例中,所述预设筛选规则中包含第一判断条件和第二判断条件,所述通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,包括:通过所述生产者进程根据所述第一判断条件构建预设数据库对应的查询语句,并基于所述查询语句在所述预设数据库中查询满足所述第一判断条件的候选文件信息;通过所述生产者进程根据所述第二判断条件对所述候选文件信息进行过滤,得到目标文件信息。这样设置的好处在于,可以保证所确定的待删除的目标文件的准确性。示例性的,预设筛选规则中可以包含多个判断条件,有些对于预设数据库来说可以直接构建查询语句进行查询,这类判断条件可称为第一判断条件,而有些判断条件可能无法通过构建查询语句实现,如文件的上传用户处于白名单中则不进行删除等,这类判断条件可称为第二判断条件。对于第一判断条件,可以通过构建预设数据库查询语句直接进行查询,这样可以充分利用预设数据库自身的查询性能,快速得到查询结果,在得到第一判断条件对应的查询结果(也即候选文件信息)后,在利用第二判断条件对候选文件信息进行过滤,从而筛选出满足预设筛选规则的目标文件信息。

在一些实施例中,通过消费者进程根据所述目标文件存储信息生成对应的删除请求,包括:通过消费者进程判断目标文件存储信息对应的文件信息是否满足预设删除条件,若满足,则根据所述目标文件存储信息生成对应的删除请求。这样设置的好处在于,消费者进程在生成删除请求之前,对目标文件存储信息对应的文件信息进行进一步核实,防止预设消息队列的写入流程出错导致文件被误删,可以适用于一些数据敏感场景。

图3为本发明实施例提供的又一种文件删除方法的流程示意图,如图3所示,该方法可包括:

步骤301、通过生产者进程读取配置文件中的最新的筛选配置信息和最新的定时任务信息。

示例性的,可以根据实际的业务需求对配置文件中包含的筛选配置信息和定时任务信息进行更新,生产者进程可以按照预先设定的读取策略(如定时读取)主动读取配置文件中的信息,也可以在接收到配置更新通知时读取配置文件中的信息。

步骤302、通过生产者进程根据所读取到的筛选配置信息确定预设筛选规则。

可选的,可以在配置文件中配置好预设筛选规则,生产者进程可以直接将读取到的筛选配置信息确定为预设筛选规则,为了满足开发人员的个性化编写需求,这里也可以支持将筛选配置信息进行格式转换,以得到生产者进程能够识别的目标格式的预设筛选规则。

步骤303、通过生产者进程根据当前的定时任务信息确定文件删除事件是否被触发,若是,则执行步骤304;否则,返回执行步骤301。

示例性的,定时任务信息中可以包含触发文件删除事件的目标时间点,若当前时间达到目标时间点,则可认为文件删除事件被触发。

步骤304、通过生产者进程确定预设筛选规则中包含的第一判断条件和第二判断条件。

示例性的,筛选配置信息中可以预先对不同类型的判断条件进行区分,以便生产者进程快速确定第一判断条件和第二判断条件。此外,不同类型的数据库,或者同一类型的不同数据库,表结构等信息均可能存在差异,均可能对查询语句的构建产生影响,因此,对于不同的数据库来说,生产者进程也可以根据预设数据库的实际情况来确定第一判断条件和第二判断条件。

步骤305、通过生产者进程根据第一判断条件构建预设数据库对应的查询语句,并基于查询语句在预设数据库中查询满足第一判断条件的候选文件信息。

步骤306、通过生产者进程根据第二判断条件对候选文件信息进行过滤,得到目标文件信息。

步骤307、通过生产者进程将目标文件信息对应的目标文件存储信息写入预设消息队列中。

步骤308、通过消费者进程读取预设消息队列中的目标文件存储信息。

需要说明的是,为了便于说明,将生产者进程和消费者进程执行的操作描述为具有先后顺序的步骤,但在实际应用时,生产过程和消费过程可以是独立地并行地进行的。也就是说,生产者进程在向预设消息队列中写入目标文件存储信息的过程中,消费者进程即可从预设消息队列中读取已经存在的目标文件存储信息,无需等待生产者进程将所有筛选出来的目标文件存储信息全部写入预设消息队列中。

步骤309、通过消费者进程判断目标文件存储信息对应的文件信息是否满足预设删除条件,若是,则执行步骤310;否则,结束流程。

其中,目标文件存储信息例如可以是目标文件存储路径。

示例性的,这里为了便于说明,站在单个目标文件存储信息的角度进行说明,在实际应用时,不同目标文件存储信息对应的消费过程可以是独立的,在确定第一条目标文件存储信息是否满足预设删除条件,并进行相应处理后,可以继续读取下一条目标文件存储信息,并继续判断新读取的目标文件存储信息是否满足预设删除条件,直到预设消息队列为空、消费过程被暂停或停止等情况发生。

步骤310、通过消费者进程根据目标文件存储信息生成对应的删除请求,并将删除请求发送至文件存储系统,用于指示文件存储系统根据删除请求对相应的目标文件进行删除处理。

本发明实施例提供的文件删除方法,生产者进程按照最新的配置文件进行待删除的文件的文件信息的筛选,并将相应的目标文件存储信息写入预设消息队列中,消费者进程在读取到目标文件存储信息后,根据对应的文件信息进行二次校验,避免文件被误删除,当确定需要删除后,再生成相应的删除请求并发送至文件存储系统,使得文件存储系统可以及时对相应的文件进行删除。

在一些实施例中,文件删除系统中还可以包括消费配置中心,可以对消费者进程进行相关配置。示例性的,在所述通过消费者进程读取所述预设消息队列中的目标文件存储信息之前,还包括:从消费配置中心获取消费配置信息,其中,所述消费配置信息包括消费功能开关、消费者线程数目和各消费者线程的消费速率中的至少一项。其中,所述通过消费者进程读取所述预设消息队列中的目标文件存储信息,包括:通过消费者进程基于所述消费配置信息读取所述预设消息队列中的目标文件存储信息。这样设置的好处在于,可以使得消费者进程的消费过程得到更加灵活的配置,有利于提高文件删除系统的整体性能。

示例性的,消费功能开关可以理解为能够控制消费者进程是否工作的开关,当消费功能开关为开启时,消费者进程可以对预设消息队列中的目标文件存储信息进行消费,当消费功能开关为关闭时,消费者进程停止对预设消息队列中的目标文件存储信息的消费。消费者进程可以生成多个线程对预设消息队列进行消费,通过消费配置信息可以对具体的线程数量进行控制,此外,还可以通过消费配置信息对各线程的消费速率(单位时间内消费消息的数量,也即单位时间内读取目标文件存储信息的条数)进行控制,每个线程的消费速率可单独控制,也可统一控制,具体不做限定。

可选的,可以通过消费者进程实时地或以高于预设频率阈值的频率来从消费配置中心获取消费配置信息,以便及时地对消费配置信息进行动态更新。

在一些实施例中,所述文件存储系统包括分布式文件存储系统,所述方法还包括:通过所述消费配置中心接收所述文件存储系统发送的负载信息,并根据所述负载信息对消费配置信息进行更新。这样设置的好处在于,通过文件存储侧的负载自适应地调节消费者进程的消费策略,可有效兼顾业务系统可用性和文件清除性能。

在一些实施例中,通过所述消费配置中心根据所述负载信息对消费配置信息进行更新,包括:通过所述消费配置中心根据所述负载信息确定所述文件存储系统的负载高于第一预设负载阈值时,对消费配置信息的更新包括降低消费速度、关闭至少一个消费者线程和关闭消费功能开关中的至少一项;通过所述消费配置中心根据所述负载信息确定所述文件存储系统的负载低于第二预设负载阈值时,对消费配置信息的更新包括升高消费速度、增加至少一个消费者线程和开启消费功能开关中的至少一项,其中,所述第二预设负载阈值小于或等于所述第二预设负载阈值。这样设置的好处在于,可以在保证业务系统可用性的前提下实现高效的数据清除,从而大大减少了企业在数据存储方面的运营成本。

示例性的,由于消费配置信息中可以包含多种信息,如同时包含消费功能开关、消费者线程数目和各消费者线程的消费速率,因此,可以设计更多的预设负载阈值,实现根据负载信息确定更加精确的消费配置信息的更新方式,具体可以根据实际需求设定。例如,设计第三预设负载阈值、第四预设负载阈值和第五预设负载阈值。文件存储系统的负载大于第三预设负载阈值且小于或等于第四预设负载阈值时,降低各消费者线程的消费速度;文件存储系统的负载大于第四预设负载阈值且小于或等于第五预设负载阈值时,关闭至少一个消费者线程,还可根据文件存储系统的负载的具体数值确定所关闭的消费者线程的具体数量;文件存储系统的负载大于第五预设负载阈值时,关闭消费功能开关。

在一些实施例中,还可包括:获取通过任一消费者线程确定所述预设消息队列中的未消费消息(也即未消费的目标文件存储信息)的数量的变化规律,并向所述消费配置中心发送所述变化规律,若所述消费配置中心确定所述变化规律满足预设调节条件,则根据所述变化规律对消费配置信息进行更新。这样设置的好处在于,可以使得消费配置信息得到更加全面的调节。所述变化规律例如可以包括逐渐增多或逐渐变少等,可根据实际情况设置相应的更新方式。

在一些实施例中,该方法还可包括:通过任一消费者线程确定所述预设消息队列的状态为空的持续时间达到预设时长阈值时,向所述消费配置中心发送空闲信息,用于指示所述消费配置中心根据所述空闲信息执行降低消费速度、关闭至少一个消费者线程以及关闭消费开关中的至少一项。这样设置的好处在于,预设消息队列的状态为空且已持续了一段时间后,说明目前没有需要删除的文件,执行上述操作后可以减少系统开销。可选的,可以设置多个预设时长阈值,实现根据空闲信息确定更加精确的消费配置信息的更新方式,具体可以根据实际需求设定。例如,设计第一预设时长阈值、第二预设时长阈值和第三预设时长阈值。持续时间大于第一预设时长阈值且小于或等于第二预设时长阈值时,降低各消费者线程的消费速度;持续时间大于第二预设时长阈值且小于或等于第三预设时长阈值时,关闭至少一个消费者线程,还可根据持续时间的具体数值确定所关闭的消费者线程的具体数量;持续时间大于第三预设时长阈值时,关闭消费功能开关。

在一些实施例中,所述文件包括视频文件。对于视频文件来说,通常文件体积相比于文档或图片等其他格式的文件来说更大一些,更加占用存储空间,且所包含的信息也更加丰富,针对视频文件采用本发明实施例提供的文件删除方案,所能够取得的消除长期存储所带来的安全隐患以及降低运营成本的效果更加显著,另外,由于视频文件的体积较大,删除过程一般也比较耗时,通过设置预设消息队列,将待删除文件的筛选过程以及删除过程进行分离,可以有效地保证视频文件删除的可靠性。综上,针对视频文件来说,可以取得尤为突出的技术效果,可以极大地优化视频运营平台的性能。可选的,视频文件为短视频平台中的短视频文件。

在一些实施例中,所述视频文件对应的文件信息包括用户删除状态、运营方删除状态、视频发布时间、视频所在地区和用户白名单中的至少一个。这样设置的好处在于,可以更加准确地判断视频文件是否需要删除。其中,用户删除状态可以理解为上传视频的用户主动将视频标记为删除的状态;运营方删除状态可以理解为运营方基于敏感信息或违规情况进行审核后确定将视频删除的状态;视频发布时间可以理解为用户上传视频的时间,或者视频在平台中展示给其他用户的最早时间;视频所在地区可以理解为视频上传用户在上传视频时所处的地区;用户白名单可以理解为视频上传用户的白名单,例如一些等级较高的用户、知名用户或粉丝数量较多的用户可以被列入白名单。可选的,文件信息可以包含上述多个的组合,可以更加全面准确地判断视频文件是否需要删除,防止出现漏删或误删等情况。

图4为本发明实施例提供的又一种文件删除方法的系统架构示意图,以视频文件删除场景为例,如图4所示,该系统架构中包括文件删除系统、数据库和分布式文件系统。数据库例如可以是MySQL,包含主库和多个从库,主库和从库之间保持数据同步,可以将其中一个从库或多个从库作为本发明实施例中的预设数据库,专门用于查询目标文件信息,避免对其他需要访问文件信息的服务产生影响。分布式文件系统用于存储用户上传的视频文件,具体类型不做限定,例如可以是Ceph、GlusterFS或Sheepdog等分布式文件系统。文件删除系统中包括生产者进程、消费者进程和消息中间件。其中,消息中间件例如可以是Kafka。

图5为本发明实施例提供的另一种文件删除方法的流程示意图,可以结合图4对本发明实施例做进一步理解。如图5所示,该方法包括:

步骤501、通过生产者进程读取配置文件中的最新的筛选配置信息和最新的定时任务信息。

示例性的,文件删除系统中生产者进程对应的服务启动后,可以从配置文件中读取最新的筛选配置信息和最新的定时任务信息。其中,筛选配置信息例如可包括如视频状态(如用户主动删除或运营删除等)、视频发布时间、视频所在地区以及用户白名单等等。对于短视频来说,定时任务信息中可以设置小时级别或天级别的定时任务。

步骤502、通过生产者进程根据所读取到的筛选配置信息确定预设筛选规则。

步骤503、通过生产者进程根据当前的定时任务信息启动生产者线程,并通过生产者线程分批在预设数据库中查询满足预设筛选规则的目标文件信息。

示例性的,这里可以启动一个或多个生产者线程,当存在多个预设数据库时,也即多个从库时,生产者线程和从库之间可以是一一对应的关系。

步骤504、通过生产者线程将目标文件信息对应的目标文件存储信息写入预设消息队列中。

示例性的,目标文件存储信息具体可以是筛选出来的目标文件信息中包含的文件存储路径信息。

步骤505、通过消费者进程从消费配置中心获取消费配置信息。

示例性的,可以通过消费者进程实时地从消费配置中心获取消费配置信息,以便及时地对消费配置信息进行动态更新。

此外,消费配置中心也可以实时地接收文件存储系统发送的负载信息和消费者线程发送的空闲信息或未消费消息的数量的变化规律等,实时地对消费配置信息进行更新。例如,当存储侧负载过高,需要降低消费速度甚至关闭消费流程;当存储侧压力较小,可以提高消费速度以达到快速清除视频文件的目的。又如,对于每一个单独的消费者线程,当消费队列(预设消息队列)为空时,说明没有需要删除的消息,当空消费的状态持续一段时间后线程可以反馈给配置中心,以减少服务的消费者线程数,减少系统开销。

步骤506、通过消费者进程基于消费配置信息生成消费者线程,并通过消费者线程读取预设消息队列中的目标文件存储信息。

示例性的,消费者进程可以根据消费配置信息来决定是否进行消费、启动消费者线程的数量、以及每个消费者线程的消费速率。当存在多个消费者线程时,多个消费者线程可以并行地进行消费。

步骤507、通过消费者线程根据目标文件存储信息生成对应的删除请求。

步骤508、通过消费者线程将删除请求发送至文件存储系统,用于指示文件存储系统根据删除请求对相应的目标文件进行删除处理。

本发明实施例提供的文件删除方法,对于视频业务场景,可以根据视频文件的信息进行文件清除,通过引入Kafka等消息中间件,可以实现可靠的视频文件删除,保障了用户删除自己视频的权利,也防止了存在内容安全问题的相关视频流出,通过从数据库获取待删除的视频信息,防止对视频业务系统中的其他服务产生干扰,通过存储侧的负载自适应地调节删除速度,能在保证业务系统可用性的前提下实现高效的数据清除,大大减少了企业在数据存储方面的运营成本,另外,上述方案不会与业务系统的已有逻辑发生耦合,也即无需修改业务相关流程,可以保证业务系统的稳定性。

图6为本发明实施例提供的一种文件删除装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行文件删除方法来进行文件删除。如图6所示,该装置包括:

文件信息查询模块601,用于通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,所述预设数据库中包含文件存储系统中存储的文件的文件信息;

文件存储信息写入模块602,用于通过所述生产者进程将所述目标文件信息对应的目标文件存储信息写入预设消息队列中;

删除模块603,用于通过消费者进程读取所述预设消息队列中的目标文件存储信息,根据所述目标文件存储信息生成对应的删除请求,并将所述删除请求发送至所述文件存储系统,用于指示所述文件存储系统根据所述删除请求对相应的目标文件进行删除处理。

本发明实施例中提供的文件删除装置,通过生产者进程在预设数据库中查询满足预设筛选规则的目标文件信息,其中,预设数据库中包含文件存储系统中存储的文件的文件信息,通过生产者进程将目标文件信息对应的目标文件存储信息写入预设消息队列中,通过消费者进程读取预设消息队列中的目标文件存储信息,根据目标文件存储信息生成对应的删除请求,并将删除请求发送至文件存储系统,用于指示文件存储系统根据删除请求对相应的目标文件进行删除处理。通过采用上述技术方案,可以对存储在文件存储系统中的文件进行及时删除,能够解决文件长期存储所带来的安全隐患以及降低运营成本,通过设置预设消息队列,将待删除文件的筛选过程以及删除过程进行分离,可以保证文件删除的可靠性。

本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的文件删除装置。图7为本发明实施例提供的一种计算机设备的结构框图。计算机设备700包括存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序,所述处理器702执行所述计算机程序时实现本发明实施例提供的文件删除方法。

本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的文件删除方法。

图8为本发明实施例提供的一种文件删除系统的结构框图,如图8所示,该文件删除系统800可包括生产者进程801、消费者进程803和消息中间件802,其中,所述消息中间件802中包含预设消息队列,所述文件删除系统800基于本发明实施例提供的文件删除方法进行文件删除。

进一步的,文件删除系统还可包括消费配置中心,所述消费配置中心用于执行本发明实施例提供的文件删除方法中的消费配置中心的相应操作,如接收所述文件存储系统发送的负载信息,并根据所述负载信息对消费配置信息进行更新等操作。

上述实施例中提供的文件删除装置、设备、存储介质以及系统可执行本发明任意实施例所提供的文件删除方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的文件删除方法。

注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。

相关技术
  • 文件删除方法、装置、设备、系统及存储介质
  • 分布式文件系统的文件删除方法、装置、设备及存储介质
技术分类

06120113034455