snapdir push

Push a snapshot to a store given its path or a staged manifest ID.

push uploads the snapshot's manifest and objects to a --store. You can push a directory directly, or push an already-staged snapshot by --id.

Usage

snapdir push [OPTIONS] [PATH]

Arguments

Argument Description
[PATH] Directory to push (omit when using --id).

Options

Option Description
--store <URI> Destination store URI. Env: SNAPDIR_STORE.
--objects-store <URI> Shared object-pool store URI. Env: SNAPDIR_OBJECTS_STORE.
--cache-dir <DIR> Directory where the object cache is stored. Env: SNAPDIR_CACHE_DIR.
--catalog <NAME> Catalog adapter to record this snapshot's location in. Env: SNAPDIR_CATALOG.
--id <ID> Push an already-staged snapshot by ID.
--exclude <PATTERN> Exclude paths matching PATTERN when pushing a directory.
--walk-jobs <N> Max parallel file-hashing jobs during the directory walk. Env: SNAPDIR_WALK_JOBS.
-j, --jobs <N> Max concurrent object transfers. Env: SNAPDIR_JOBS.
--limit-rate <RATE> Limit aggregate transfer bandwidth. Env: SNAPDIR_LIMIT_RATE.
--adaptive[=<FRACTION>] Adaptively tune transfer concurrency/bandwidth. Env: SNAPDIR_ADAPTIVE.
--max-jobs <N> Adaptive concurrency ceiling. Env: SNAPDIR_MAX_JOBS.
--max-retries <N> Total retry attempts per network request, including the first.
--retry-base-ms <MS> Base retry backoff delay in milliseconds.
--retry-max-ms <MS> Maximum retry backoff delay in milliseconds.
--max-requests <N> Cap request rate; 0/unset uses the backend default.
--linked Accepted by the shared transfer parser; push uploads a snapshot and does not create a linked checkout.
--force Force an action to run.
--keep Keep the staging directory.
--dryrun Run without making changes.
-q, --quiet / --no-progress / --color <WHEN> / --verbose Universal output-control options.

With --objects-store, manifests are written under --store while content objects are written to the shared object pool's .objects/ layout. When pushing a directory, snapdir assumes the input tree is quiescent; in-flux files or directories make the command fail clearly.

Examples

Push the current directory to an S3 store:

snapdir push --store s3://my-bucket/snapshots .

Push an already-staged snapshot by ID, rate-limited:

snapdir push --id 1220abc... --store file:///srv/backups --limit-rate 10M

Push manifests to one location while sharing a deduplicated object pool:

snapdir push --store s3://inventory/manifests/2026-06-17 --objects-store s3://inventory/object-pool ./project

Push to an SSH-reachable host (see SSH and SFTP stores):

snapdir push --store ssh://backup@nas.example.com/srv/snapdir .

See also