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



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

  1. 遍历文件夹
  2. 中的每个条目
  3. 如果是一个文件,取消标签,如果是一个文件夹,不要

我发现的关于标签和NextCloud的一切都与上传时处理它们有关,但从未在标签方面运行超过现有文件。
这可能吗?

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

赋值存储在oc_systemtag_object_mapping中,而标签本身存储在oc_systemtag中。如果您发现要删除的标记的ID(假设是4),您可以简单地从db中删除所有赋值:

DELETE FROM oc_systemtag_object_mapping WHERE systemtagid = 4;

如果你只想为一个特定的文件夹做这个,它甚至不会变得更复杂。文件(包括其文件夹结构!)存储在oc_filecache中,而oc_systemtag_object_mapping.objectid引用oc_filecache.fileid。因此,通过一些连接和LIKE,您可以限制要删除的行。如果您的标记用于非文件,则您的条件应该包括oc_systemtag_object_mapping.objecttype = 'files'

最新更新