扫描任务

为什么需要扫描功能

蓝眼云盘的物理文件是直接存储在磁盘中,物理文件的元信息是存储在数据库中的,在蓝眼云盘界面上看到的文件都是数据库中存放的元信息。 可能我们删除了磁盘中的文件,或者往磁盘中添加了新的文件后蓝眼云盘界面上却没有任何变化。 这时候如果有一个任务能够同步物理文件和数据库元信息, 那么就能够让蓝眼云盘中的文件保持和物理磁盘一致。

常见使用场景

    1. 我的服务器用下载软件下载文件,我希望文件下载好了之后,蓝眼云盘可以第一时间看到。
    1. 我的服务器文件有时候想要删除,我希望蓝眼云盘一起删除这些文件。

扫描配置

在前端偏好设置处配置。 需要特别指出的是cron表达式采用标准cron表达式,与Linux 中crontab命令相似,cron库支持用 5 个空格分隔的域来表示时间。这 5 个域含义依次为:

规则

  • Minutes:分钟,取值范围[0-59],支持特殊字符* / , -;
  • Hours:小时,取值范围[0-23],支持特殊字符* / , -;
  • Day of month:每月的第几天,取值范围[1-31],支持特殊字符* / , - ?;
  • Month:月,取值范围[1-12]或者使用月份名字缩写[JAN-DEC],支持特殊字符* / , -;
  • Day of week:周历,取值范围[0-6]或名字缩写[JUN-SAT],支持特殊字符* / , - ?。

举例

  • * * * * * 表示每分钟
  • 1 * * * * 表示每个小时的第1分钟

扫描任务

扫描配置完成后,蓝眼云盘就会根据cron表达式定期执行扫描任务。 扫描任务主要做两件事情:

  1. 遍历某个用户蓝眼云盘中的文件,判断对应的物理文件是否还存在,如果物理文件不存在了,那么删除蓝眼云盘文件。
  2. 遍历某个用户物理根目录下的文件,如果蓝眼云盘中没有文件的元信息,就在蓝眼云盘中创建对应的文件或文件夹。

扫描任务执行会在后端打印日志,可以从日志中观察执行情况。

上次更新: 2020/7/11 下午11:53:07