Skip to content

目录元信息使用指南

让目录更友好:加说明、藏文件、设密码,继承可控。

1. 它能做什么

  • 顶部/底部说明:在挂载浏览器列表上方/下方展示 Markdown(公告、操作提示、免责说明等)。
  • 隐藏规则:用正则隐藏特定文件/文件夹的“显示”,不删数据,直链/下载依然可用。
  • 路径密码:为某条路径加门锁,非管理员访问需先输入密码;可选择继承到子目录。

管理员默认免密码;开启继承时,父规则会叠加到子目录(不会被子目录关掉,只能再追加或更严)。

2. 基本概念

  • 按路径配置:一条记录对应一个虚拟路径(如 /public/team/docs)。
  • 继承:勾选“应用到子文件夹”→ 子目录叠加父目录的隐藏规则/密码/说明。
  • 作用范围:隐藏仅影响挂载浏览 UI 列表;密码仅对 Web UI 访问生效;存储数据不受影响。

3. 配置步骤(后台 FS Meta 管理)

  1. 进入后台 → FS Meta 管理 → 新建/编辑记录。
  2. 填写字段:
    • 路径 Path:以 / 开头的目录路径。
    • 顶部说明 / 底部说明:Markdown 文本,可为空。
    • 隐藏规则:一行一个 JavaScript 正则,匹配 item.name;可勾选“应用到子文件夹”。
    • 路径密码:设置密码;可勾选“应用到子文件夹”。管理员免输。
  3. 保存 → 前台挂载浏览器刷新即可;受保护目录首次访问会弹出密码输入。

4. 隐藏规则写法

规则写在“隐藏规则”文本框里,一行一条 JavaScript 正则,匹配的是文件名 item.name

常用速查:

  • 只藏一个文件^README\.md$
  • 藏所有“点”文件^\..*
  • 藏所有 Markdown\.md$
  • 藏临时前缀^temp_
  • 藏备份尾巴~$

详细说明:

  • 大小写敏感README.mdreadme.md。需要忽略大小写可写 (?i:^readme\.md$),但建议直接写精确大小写。
  • 点号要转义:想匹配字面 .,写 \.,否则表示“任意字符”。
  • ^ / $ 收紧范围:避免 \.mdreadme.mdx 也匹配到;要精确请写 \.md$,甚至 ^(note_.*\.md)$
  • 继承是叠加:父目录规则 + 子目录规则合并;没有“排除父规则”的写法,尽量把通用规则放在合适的层级。

排查/测试小技巧:

  1. 在正则测试网站用几组文件名演练(如 .gitignoreREADME.mdtemp_01.txt),确认命中是否符合预期。
  2. 观察是否缺少边界符导致“误伤”——比如 \.md 会命中 abc.md.bak
  3. 隐藏只影响列表;如果直链还能访问,说明规则本身生效但这是预期行为。

5. 路径密码场景(来自 fs-meta-password-rules)

  • 单目录加锁:path=/private,password=123456,继承=否 → 只锁本目录。
  • 整棵树一把锁:path=/team,password=1111,继承=是 → /team/** 一次输入当次会话内免重输。
  • 父锁+子更严/team 密码 1111 继承=是;/team/secret 密码 9999 继承=是 → 进 secret 需再输 9999
  • 多层嵌套/data=A,/data/private=B,/data/private/logs=C,均继承 → 各层有独立“保护圈”。

Token 行为:改密码后旧 token 失效需重输;token 存在 sessionStorage,刷新同标签可复用,关标签需重输。

6. 组合示例

  • 公告 + 隐藏临时文件/public 顶部说明=公告,隐藏 ^temp_,继承=是。
  • 文档区加锁并隐藏生成物/docs 密码 docpass 继承=是;隐藏 ^build_\.log$
  • 子目录自有说明:父 /team 有通用说明;子 /team/rd 设置自己的顶部说明,不改父规则。
  • 严格子区:父 /assets 无密码;子 /assets/licensed 密码+继承=否,避免波及其他子目录。

7. 故障排查

  • 隐藏不生效或过度:检查路径是否匹配;是否缺少 ^/$ 或未转义 .;父级继承是否叠加太多。
  • 密码一直弹:可能父级继承或密码刚改,重新输入新密码即可。
  • 说明未显示:确认填在对应字段、路径匹配,并刷新缓存(等缓存 TTL 或后台清理)。
  • 子目录想独立规则:为子目录新增一条 Meta,关闭继承或覆盖说明/隐藏/密码。

按路径写说明、藏条目、加密码,继承按需勾选;它改变的是“看见与进入”,不动你的存储数据。

基于 Apache License 2.0 许可发布