你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
Provider 返回的路径该不该带挂载前缀?
Provider 使用相对自身的路径,调度层负责调用者看到的挂载前缀。
- 调用者 /work/report解析挂载→
- AFS 分派移除前缀→
- Provider /report
一次请求的三个视角
假设 provider 挂在 /work。调用者读取 /work/report,处理器收到 ctx.path = "/report"。处理器返回的条目路径仍应是 /report;AFS 调度层把它变回 /work/report。
| 位置 | 路径 |
|---|---|
| 调用者请求 | /work/report |
| Provider 内部 | /report |
| Provider 返回 | /report |
| 调用者收到 | /work/report |
如果 provider 自己加上 /work,调度层可能再次添加前缀,产生 /work/work/report。挂载根也遵循同一规则:请求 /work,内部是 /。
不只检查 read
list、search 和 query 返回的是多个条目,每个条目的路径也必须遵守相同边界。Wrapper 如果转发回宿主 AFS,拿到的可能已经是完整路径,返回外层前需要正确转换。
因此测试必须同时覆盖挂载根、子路径和条目集合。只检查内容正确,会漏掉“读到了数据,却无法继续引用”的错误。