Skip to Content
We are live but in Staging 🎉
Data EnginesObjectsCLI GuideOverview

Object Storage — CLI Guide

The dodil data CLI covers five Storage command groups:

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 object is a thin admin wrapper — it exposes no prefix filter, no pagination and no parallelism. aws s3 sync, rclone, mc mirror and boto3 all speak to https://object.uk-lon-1.dodil.io directly; 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:

CommandWire
bucket *, bucket policy *, bucket cors *gRPC StorageService
object show / list / url / removegRPC StorageService
object createHTTP 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