目录元信息使用指南
让目录更友好:加说明、藏文件、设密码,继承可控。
1. 它能做什么
- 顶部/底部说明:在挂载浏览器列表上方/下方展示 Markdown(公告、操作提示、免责说明等)。
- 隐藏规则:用正则隐藏特定文件/文件夹的“显示”,不删数据,直链/下载依然可用。
- 路径密码:为某条路径加门锁,非管理员访问需先输入密码;可选择继承到子目录。
管理员默认免密码;开启继承时,父规则会叠加到子目录(不会被子目录关掉,只能再追加或更严)。
2. 基本概念
- 按路径配置:一条记录对应一个虚拟路径(如
/public、/team/docs)。 - 继承:勾选“应用到子文件夹”→ 子目录叠加父目录的隐藏规则/密码/说明。
- 作用范围:隐藏仅影响挂载浏览 UI 列表;密码仅对 Web UI 访问生效;存储数据不受影响。
3. 配置步骤(后台 FS Meta 管理)
- 进入后台 → FS Meta 管理 → 新建/编辑记录。
- 填写字段:
- 路径 Path:以
/开头的目录路径。 - 顶部说明 / 底部说明:Markdown 文本,可为空。
- 隐藏规则:一行一个 JavaScript 正则,匹配
item.name;可勾选“应用到子文件夹”。 - 路径密码:设置密码;可勾选“应用到子文件夹”。管理员免输。
- 路径 Path:以
- 保存 → 前台挂载浏览器刷新即可;受保护目录首次访问会弹出密码输入。
4. 隐藏规则写法
规则写在“隐藏规则”文本框里,一行一条 JavaScript 正则,匹配的是文件名
item.name。
常用速查:
- 只藏一个文件:
^README\.md$ - 藏所有“点”文件:
^\..* - 藏所有 Markdown:
\.md$ - 藏临时前缀:
^temp_ - 藏备份尾巴:
~$
详细说明:
- 大小写敏感:
README.md≠readme.md。需要忽略大小写可写(?i:^readme\.md$),但建议直接写精确大小写。 - 点号要转义:想匹配字面
.,写\.,否则表示“任意字符”。 - 用
^/$收紧范围:避免\.md把readme.mdx也匹配到;要精确请写\.md$,甚至^(note_.*\.md)$。 - 继承是叠加:父目录规则 + 子目录规则合并;没有“排除父规则”的写法,尽量把通用规则放在合适的层级。
排查/测试小技巧:
- 在正则测试网站用几组文件名演练(如
.gitignore、README.md、temp_01.txt),确认命中是否符合预期。 - 观察是否缺少边界符导致“误伤”——比如
\.md会命中abc.md.bak。 - 隐藏只影响列表;如果直链还能访问,说明规则本身生效但这是预期行为。
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,关闭继承或覆盖说明/隐藏/密码。
按路径写说明、藏条目、加密码,继承按需勾选;它改变的是“看见与进入”,不动你的存储数据。
