dumont

Recipes

Practical cross-store patterns — copies, mirrors, and peeking into archives.

Practical patterns that lean on dumont's cross-store, single-verb model.

Copy between two unlike stores

Because both sides resolve to the same interface, the bytes stream directly without a manual download/upload dance:

dumont cp aws://bucket/report.csv  drive://reports/
dumont cp gcs://data/dump.sql      cdn://backups/

Pull a remote URL straight into a store

The HTTP backend is a read-only source, so it's perfect as the left side of a cross-store copy:

dumont cp https://example.com/release.tar.gz  aws://artifacts/release.tar.gz

Mirror a directory to a CDN

sync copies only what changed; --delete prunes anything not in the source so the destination becomes an exact mirror:

dumont sync ./public cdn://www --delete
dumont sync ./public cdn://www --delete --dry-run   # preview first

Peek inside an archive without unpacking

dumont ls  zip://release.zip/
dumont cat tar://backup.tar.gz/etc/config.yaml
dumont cp  zip://release.zip/bin/tool  /usr/local/bin/tool

Stream through a pipe

- is stdin/stdout, so dumont composes with the rest of your shell:

pg_dump mydb | gzip | dumont cp - aws://backups/db-$(date +%F).sql.gz
dumont cat aws://backups/latest.json | jq .

Check what a store can do before you rely on it

dumont caps aws            # advertised capabilities
dumont stat aws://b/k      # per-object metadata + capabilities
dumont remote test aws     # resolve credentials + liveness probe

Safe by default

Add --dry-run to any cp/mv/rm to see the plan without touching anything, and -n/--no-clobber to skip destinations that already exist:

dumont rm -r aws://bucket/old/ --dry-run
dumont cp -r ./site cdn://www -n

On this page