AFS 行为始终是实例形态的。同一 CLI 二进制面对两个 daemon、两套数据目录或两张 mount 表,不会产生相同路径。
除非另注,均在 arc 2.0.0-beta.28 对本地 daemon 核验。
Mount
| 事实 | 细节 |
|---|---|
| Mount 把路径前缀绑到 provider URI | 形状示例:/modules/project -> fs:///absolute/path |
| 列出 mount | arc afs mount list / arc afs explain mount |
| 校验配置形态 | arc afs mount validate → 核验主机上为 Configuration is valid |
| 密钥 | URI 可能含凭证(token、vault 路径)。分享前脱敏 |
mount add 不是自动的验收路径
在 beta.28 上观察到:
arc afs mount add /modules/… fs:///tmp/…打印Mounted …。arc afs mount list出现新行。arc afs explain <path>报告TYPE unknown。ls为空或连接错误;read为 not found。arc afs mount remove <path>清除列表项。
不要写「add 完立刻 write 一定成功」的通用 recipe。优先:
- 巡检已经在提供数据的 mount,或
- 使用团队已端到端验证的隔离流程(独立数据目录 / 服务实例),变更前再用
stat/ls确认。
权限与访问
| 层 | 约束什么 |
|---|---|
Provider accessMode | readonly / create / append / readwrite |
visibility | full vs meta(meta 拒绝 search 内容) |
| Action 严重级别 / 策略 | 哪些 exec action 可运行 |
| 调用方 / 网络门控 | 部分 mount 上的认证与 network-read 规则 |
根上列出 write action,也不等于每个子 mount 可写。
实例状态
| 状态种类 | 例子 | 文档含义 |
|---|---|---|
| 进程 | 主机 AFS 数据目录下的 daemon PID/port | CLI 通常连这个 daemon |
| Mount 表 | 已配置的 provider URI | 随环境而变 |
| Provider 数据 | fs:// 下文件、vault 内容、远程资源 | 变更会改真实数据 |
| Blocklet / space 数据 | 本地 DID Space 树 | 属其他 board;勿当可丢弃 |
不要把任意长期运行的 daemon 当一次性测试基建。会注册 mount 或写入 provider 数据的命令,需要刻意的隔离方案。
本地验收 vs 正式发布
| 面 | 证明什么 | 不证明什么 |
|---|---|---|
对本机 daemon 的 arc afs … | 本实例的路径/操作/mount 行为 | 全局产品默认、多租户部署 |
| 本地 blocklet 服务 / 浏览器(站点文档) | 文档页渲染 | 你的应用的远程 DID Space 托管 |
arc deploy / DID Space 发布 | 任务是部署时的发布集成 | 单独证明本地 AFS 合同正确 |
| ARC monorepo 中的 provider conformance | 某 commit 上的接口纪律 | 你主机上的 mount 等于该 provider |
对本 AFS board,本地巡检与 recipes 是主证据。正式发布是另一套清单——仅在任务是部署时使用。
实用检查单
- 记录
arc --version。 - 在弄清 mount 与能力前,优先只读命令。
- 有则读
<mount>/.meta/.capabilities。 - 只在自己拥有的 mount 上变更;清理可丢弃路径。
- 分享输出前脱敏。
- 命令失败时保留精确错误——不要编造成功输出。