• 简体中文
  • 本地资产管理

    本页介绍工作目录、不可变镜像、本地 daemon、标签和清理。按安装说明安装 v0.3.1 或更新版即可使用,无需 Rust 或 Docker。

    对象含义
    资产工作目录可编辑的 asset.yaml、USD / glTF、GLB 预览、缩略图和许可证;validate 检查它
    镜像OCI manifest + 内容寻址 blobs,以 sha256:... 标识不可变内容;images 列出本地库存
    tag指向镜像 digest 的可变引用;改工作目录不会改变已有镜像
    OCI layout镜像的目录化导出;pack 生成 layout,build 还会把镜像入库并赋 tag
    实例基于镜像创建的运行记录与独立状态;首版支持 kinematic

    查看与检查

    使用独立目录体验新命令。--cache-dir 选择同一份资源存储,其中包含内容寻址的 blob 和本地目录元数据。

    lab pull hub.sciol.ac.cn/scienceol/elevrail-1-5m-v1-5167d813ec@sha256:2f5734742ca8694602faead5517ef6cf68f0db399ea9bb0e9c160d58f2efc1f2 --cache-dir ./lab-store
    lab asset list --cache-dir ./lab-store --json
    lab asset inspect hub.sciol.ac.cn/scienceol/elevrail-1-5m-v1-5167d813ec@sha256:2f5734742ca8694602faead5517ef6cf68f0db399ea9bb0e9c160d58f2efc1f2 --cache-dir ./lab-store --json
    lab images --cache-dir ./lab-store --json

    list 展示已入库的包、版本、引用和逻辑包大小;不同包共享的 blob 不会因此重复占用磁盘。inspect 进一步校验本地包。省略目录选项时,资源存储位于当前用户的平台持久状态目录。

    这份清单不会自动导入旧版 CLI 的下载缓存。首次使用可重新拉取资产,或导入已有 OCI layout;旧格式引用不会作为新目录的隐式来源。

    同一份资源存储应通过 LAB_ASSET_CACHE 复用;命令行参数优先级更高,适合临时切换目录:

    export LAB_ASSET_CACHE="$PWD/lab-store"
    lab daemon start
    lab images --json

    lab daemon status --json 检查状态;lab daemon stop 等待已接收操作结束后停止。daemon 使用仅本机可达的认证连接,诊断日志位于存储目录的 daemon.log。它是当前用户的后台进程,安装器不会注册开机服务。未运行时命令可直接操作同一存储;已有 daemon 无响应时会报错。

    构建和拆分

    lab build ./asset --tag localhost/demo/robot:1.0.0
    lab images --json
    lab inspect localhost/demo/robot:1.0.0 --json

    修改工作目录后再次 build 会产生新 digest。lab push 本地tag 远程tag 上传该镜像,其他设备用远程 digest 拉取相同内容。可选 --output ./layout 同时保留 OCI layout。

    拆分前按安装页准备 OpenUSD Python,并确认 prim 路径确实存在于自己的 USD 场景中:

    lab split ./asset --output ./components \
      --part arm=/Robot/Geometry/Arm \
      --part base=/Robot/Geometry/Base
    lab validate ./components/arm
    lab build ./components/arm --tag localhost/demo/robot-arm:1.0.0

    拆分按完整 prim 路径解析,保留所需关系目标,复制并重写纹理依赖;所有子目录一起发布,失败不会留下半成品。子资产记录父 digest 和原 prim 路径,清除不再适用的整机运行时声明。component 名称使用小写字母、数字和中间的短横线。源目录必须包含所需依赖。

    当前继承父资产的 GLB 预览和缩略图;它不会自动生成子部件预览或猜测语义部件。线上发布前请替换为对应子部件的预览。

    导入与标签

    已有 OCI layout 时可以直接导入;标签是本机引用,不会把包上传到这个地址:

    lab asset import ./layout --tag localhost/demo/elevrail:dev --cache-dir ./lab-store
    lab asset tag localhost/demo/elevrail:dev localhost/demo/elevrail:review --cache-dir ./lab-store
    lab asset inspect localhost/demo/elevrail:review --json --cache-dir ./lab-store

    ./layout 由 lab pack 生成。也可以使用完整 sha256:... 作为已缓存包的源标识。修改标签会改变该本机引用的指向;已创建实例使用其创建时固定的 digest。

    移除与清理

    lab asset remove localhost/demo/elevrail:review --cache-dir ./lab-store
    lab asset prune --dry-run --json --cache-dir ./lab-store

    移除引用不会立即删除包字节。prune --dry-run 列出可回收的包、blob 和实际字节数;确认是这份独立存储中不再需要的内容后,执行:

    lab asset prune --json --cache-dir ./lab-store

    清理只处理未被引用或占用的包,保留仍被其他包使用的共享 blob。按 digest 移除包时也会检查占用;保留的运行实例需要先移除,停止实例本身不会解除占用。