Nextcloud - 从文件中大量删除协作标签

问题描述

由于流程例程的疏忽,该流程旨在在上传到云端时标记某些文件夹,因此在此过程中还标记了大量不需要的文件。现在有成千上万个文件错误标签,需要取消标签。手动执行此操作或使用正确的流程例程重新上传都不是真正可行的选择。有没有办法做到以下几点:

  1. 浏览文件夹中的每个条目
  2. 如果是文件,取消标记,如果是文件夹,不要

我发现的关于标签和 NextCloud 的所有内容都涉及在它们上传时处理它们,但从未在标签方面运行过现有文件
这可能吗?

解决方法

云将这些数据存储到配置的数据库中。所以你可以简单地从数据库中删除分配。

分配存储在 oc_systemtag_object_mapping 中,而标签本身存储在 oc_systemtag 中。如果您找到要删除的标签 ID(假设为 4),您可以简单地从数据库中删除所有分配:

DELETE FROM oc_systemtag_object_mapping WHERE systemtagid = 4;

如果您只想对特定文件夹执行此操作,它甚至不会变得更复杂。文件(包括它们的文件夹结构!)存储在 oc_filecache 中,而 oc_systemtag_object_mapping.objectid 引用 oc_filecache.fileid。因此,通过一些加入和 LIKEing,您可以限制要删除的行。如果您的标签用于非文件,您的条件应包括 oc_systemtag_object_mapping.objecttype = 'files'

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...