dodil data mount
Mount a K3 bucket as a local filesystem so you can interact with objects through normal file operations. This is the one Storage feature with no API-reference counterpart — it is entirely client-side. The CLI forks a detached daemon that speaks gRPC ListObjects / GetObjectInfo to the control plane and HTTP to the byte plane, and presents the result as a filesystem.
Requires FUSE on the host for the default mount type (
fuse);--type nfsruns a local NFS server instead and shells out tosudo umounton teardown.
K3 buckets are flat — keys just happen to contain / — so the mount synthesizes a directory tree from key prefixes. Two consequences: directories are not real objects, and the listing inherits every limit of ListObjects (server default 1000 keys, and the K3-managed _warehouse/ and _vector/ prefixes filtered out).
State lives under ~/.k3/ — mounts.json is the mount registry, spool/<bucket>/ buffers local writes. If a mount fails to come up, the daemon’s stderr is in $TMPDIR/k3-mount-<bucket>.log; set K3_FUSE_DEBUG=1 before mounting to trace FUSE operations.
dodil data mount
dodil data mount [bucket] [mount-path] [flags]Both arguments are required. Creates the mount path if it doesn’t exist, starts a detached daemon in its own session (so it outlives your shell), and registers the mount in ~/.k3/mounts.json. The command returns as soon as the daemon is started — it does not wait for the filesystem to be ready, so a missing FUSE driver surfaces in the log file rather than in your terminal.
| Flag | Type | Default | Description |
|---|---|---|---|
--type | string | fuse | Mount type — fuse or nfs. Any other value fails in the daemon. |
Examples:
# Default: FUSE
dodil data mount kb-prod ~/kb-prod-fs
# NFS
dodil data mount kb-prod ~/kb-prod-fs --type nfsFUSE is read-write: create, read, write, unlink and mkdir are all wired up, and writes are spooled locally then flushed to the bucket. NFS builds an in-memory snapshot of the bucket at mount time by downloading every object — fine for a small bucket, not for a large one. Prefer FUSE unless you specifically need NFS.
For a durable, high-throughput filesystem view,
rclone mountagainsthttps://object.uk-lon-1.dodil.iois the better-tested path — it does real caching, retries and concurrency.dodil data mountis the convenience option, not the performance one.
dodil data unmount
dodil data unmount [mount-path]Looks the path up in the registry, sends the daemon a SIGINT, then force-cleans the mount point — fusermount -uz for a FUSE mount, sudo -n umount -f / -l for NFS (so an NFS unmount needs passwordless sudo) — and unregisters it. The path must be the exact one you mounted; there is no unmount-by-bucket.
Example:
dodil data unmount ~/kb-prod-fsdodil data mount list
dodil data mount listLists the mounts recorded in ~/.k3/mounts.json, one line each:
Active Mounts (1):
- /Users/you/kb-prod-fs (Bucket: kb-prod, PID: 41233, Type: fuse)This reads the local registry, not the server — an entry survives a daemon that died, so a listed mount is not proof of a live one. Check the PID if in doubt.
See also
- S3 Compatibility —
rclone mountand the rest of the S3 tooling - Objects — API Reference — the byte plane and
ListObjectslimits the mount inherits - Core Concepts → Bucket
dodil data bucket·dodil data object