Object Storage — CLI Guide
The dodil data CLI covers five Storage command groups:
dodil data bucket— bucket lifecycle (create,get,list,update,delete)dodil data bucket policy— S3-style ACL (set,get,delete)dodil data bucket cors— CORS configuration (set,get,delete)dodil data object— object operations (createupload,show,list,urlpresign,remove)dodil data mount— mount a bucket as a local filesystem via FUSE / NFS
The CLI mirrors the full Storage API surface; the JSON-heavy operations (policy set, cors set) take a JSON file via -f FILE (or -f - for stdin).
There is a sixth, sibling group — dodil data object destination — but it is not Storage: object destinations are pipelines with an object facet, so it lives with Pipelines → CLI Guide and its subcommands take a pipeline id.
For bulk object work, reach for an S3 client.
dodil data objectis a thin admin wrapper — it exposes no prefix filter, no pagination and no parallelism.aws s3 sync,rclone,mc mirrorand boto3 all speak tohttps://object.uk-lon-1.dodil.iodirectly; see S3 Compatibility.
For install, auth, output format, and global flags see CLI Basics. For the underlying API contracts see Object Storage — API Reference.
Quick setup
Configure once and every subsequent command picks the values up:
export DODIL_TOKEN="<bearer_token>"
export DODIL_ORG="<org_id>"Or pass them per-command with --token / --org.
--api-endpoint is the control-plane gRPC target, given as host:port — not an HTTP base URL. Do not pass https://api.data.dodil.io to it. --local switches the whole CLI to the dev stack (localhost:50055, plaintext, org header).
Which wire each command uses
Everything except the upload runs over gRPC to the control plane:
| Command | Wire |
|---|---|
bucket *, bucket policy *, bucket cors * | gRPC StorageService |
object show / list / url / remove | gRPC StorageService |
object create | HTTP PUT to the S3 object gateway |
dodil data object create PUTs to https://object.<region>.dodil.io/<bucket>/<key> with Authorization: Bearer … and an x-organization-id header — the same byte plane any S3 client uses (cf. Objects — byte plane). The host is derived from the api-endpoint’s domain (region defaults to uk-lon-1); override it with data.object_endpoint in your config file, or use --local for http://localhost:8092. There is no gRPC equivalent — object bytes never flow through the gRPC StorageService.
See also
- CLI Basics — install, auth, persistent flags, output format
- Object Storage — API Reference — the full Storage API surface (gRPC + HTTP)
- Object Storage · Core Concepts
- Conventions — auth headers and error envelope