网盘用户回收站过期文件是否可以找回

我这边有个一个网盘设置回收站保存历史是6个月,但是有用户有删除的资料库超过6个月,我这边系统没有回收空间,请问这个资料库有办法找回来么?

如果资料库已经超过回收站保留时间,并且从系统回收站中被清除,Web 界面中无法直接恢复。

但如果服务器还没有执行过 GC,底层数据可能仍然存在,可以尝试通过 seaf-fsck 导出恢复。

https://manual.seafile.com/13.0/administration/seafile_fsck/

需要查找该资料库的 library-id,也就是 repo_id。

可以先在数据库中查询 seafile_db:

USE seafile_db;

SELECT
    repo_id,
    repo_name,
    owner_id,
    FROM_UNIXTIME(del_time) AS deleted_time
FROM RepoTrash
ORDER BY del_time DESC;

如果已经从 RepoTrash 中过期清除,再检查:

SELECT * FROM GarbageRepos;

如果能找到对应的 repo_id,就可以尝试导出:

cd /opt/seafile/seafile-server-latest

./seaf-fsck.sh --export /data/recovery <repo_id>

例如:

./seaf-fsck.sh --export /data/recovery \
ca1a860d-e1c1-4a52-8123-0bf9def8697f

如果数据库中已经无法确认对应的 repo_id,还可以从以前的浏览器访问地址、Seafile Client / SeaDrive 日志、服务器日志或数据库备份中查找。

如果是资料库被删除,超过六个月,按道理说已经被彻底删除了,无法被找回;删除的资料库在到指定时间后会被GC主动清理;如果是资料库里的回收站文件记录被删除了,可以尝试用fsck找回