问题描述
由于流程例程的疏忽,该流程旨在在上传到云端时标记某些文件夹,因此在此过程中还标记了大量不需要的文件。现在有成千上万个文件有错误的标签,需要取消标签。手动执行此操作或使用正确的流程例程重新上传都不是真正可行的选择。有没有办法做到以下几点:
我发现的关于标签和 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
。因此,通过一些加入和 LIKE
ing,您可以限制要删除的行。如果您的标签用于非文件,您的条件应包括 oc_systemtag_object_mapping.objecttype = 'files'
。