跳到主要内容
知识地图Provider 返回的路径该不该带挂载前缀?ArcBlock 体系

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← AFS

一个问题

Provider 返回的路径该不该带挂载前缀?

Provider 使用相对自身的路径,调度层负责调用者看到的挂载前缀。

  1. 调用者 /work/report解析挂载
  2. AFS 分派移除前缀
  3. 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,拿到的可能已经是完整路径,返回外层前需要正确转换。

因此测试必须同时覆盖挂载根、子路径和条目集合。只检查内容正确,会漏掉“读到了数据,却无法继续引用”的错误。

检查一下理解

Provider 返回的路径该不该带挂载前缀?

Provider 使用相对自身的路径,调度层负责调用者看到的挂载前缀。

沿着学习路径继续