AnyShare - 删除空文件夹时,提示:该文件夹下的某些子文件已被锁定,这些文件无法被删除,所在路径将保留。
关键字
删除、锁定、子文件
适用产品
- AnyShare Enterprise 7.0.x.x
- AnyShare Express 7.0.x.x
问题描述
删除空文件夹时,提示:该文件夹下的某些子文件已被锁定,这些文件无法被删除,所在路径将保留。

问题影响
出现该问题将导致无法删除空文件夹。
问题原因
由于程序运行异常,导致文件夹中应该与文件删除同步删除的锁表记录没有自动删除。
解决方案
为了解决该问题,需要清理已经被删除的文件的锁表记录,请按照以下步骤执行:
警告:修改数据库及重启服务为风险操作,请确认操作准确性,建议协调操作窗口。
1.通过 SSH 登录到 AnyShare 节点,执行如下命令,找到 mariadb 数据库 pod,下图以 mariadb-0 为例。
kubectl get po -A -o wide |grep mariadb

2.执行如下命令,通过 kubectl 命令进入容器,备份数据库 anyshare 的 t_lock 表后,登录数据库。
kubectl exec -it mariadb-mariadb-0 -n resource -- /bin/bash
mysqldump -h127.0.0.1 -P3306 -uroot -p anyshare t_lock > /var/lib/mysql/bak_t_lock.sql
mysql -uroot -p


3.在浏览器输入 F12 进入工具模式,找到 delete 接口,获取文件所在文档库的 GNS 值。执行 SQL 语句,查询需要删除的空文件夹的 GNS 在数据库中是否存在文件的锁表记录。
select *from anyshare.t_lock where f_doc_id like "%gns://xxx%"\G;


4.执行 SQL 语句,删除这条已被删除的文件的锁表记录,删除后再次查询空文件夹的锁表信息为空即可。
delect from anyshare.t_lock where f_doc_id ="gns://xxx%";
select *from anyshare.t_lock where f_doc_id like "%gns://xxx%"\G;

5.重新删除空文件夹即可删除成功。
更多信息
需要注意因为密级、权限问题导致的文件夹为空,删除不了的情况,可以通过统计文件夹大小等方法来辅助判断。