desync(1)

NAME
desync-extract - Read an index and build a blob from it

SYNOPSIS
desync extract <index> <output> [flags]

DESCRIPTION
Reads an index and builds a blob reading chunks from one or more chunk stores. Use '-' to read the index from STDIN.

When using -k, the blob will be extracted in-place utilizing existing data and the target file will not be deleted on error. This can be used to restart a failed prior extraction without having to retrieve completed chunks again.

Multiple optional seed indexes can be given with --seed. The matching blob should have the same name as the index file without the .caibx extension. If the blob data is in another location, or has a different name, the path can be set explicitly by appending a colon and the data path to the index path, as in --seed <index>:<blob>. If several seed files and indexes are available, the --seed-dir option can be used to automatically select all .caibx files in a directory as seeds, expecting the matching blobs next to them.

If a seed is invalid, the extract operation is aborted by default. With --skip-invalid-seeds, invalid seeds are discarded and the extraction continues without them. Alternatively, --regenerate-invalid-seeds regenerates invalid seed indexes in memory from the available data; neither data nor indexes are changed on disk. Also, if a seed changes while processing, its invalid chunks will be taken from the self seed, or the store, instead of aborting.

OPTIONS
--ca-cert=""
    trust authorities in this file, instead of OS trust store

-c, --cache=""
    store to be used as cache

-r, --cache-repair[=true]
    replace invalid chunks in the cache from source

--client-cert=""
    path to client certificate for TLS authentication

--client-key=""
    path to client key for TLS authentication

-n, --concurrency=10
    number of concurrent goroutines

-e, --error-retry=3
    number of times to retry in case of network error

-b, --error-retry-base-interval=500ms
    initial retry delay, increases linearly with each subsequent attempt

-h, --help[=false]
    help for extract

-k, --in-place[=false]
    extract the file in place and keep it in case of error

--print-stats[=false]
    print extraction statistics to stdout when done

--regenerate-invalid-seeds[=false]
    regenerate seed indexes with invalid chunks

--seed=[]
    seed indexes

--seed-dir=[]
    directory with seed index files

--skip-invalid-seeds[=false]
    skip seeds with invalid chunks

-s, --store=[]
    source store(s)

-t, --trust-insecure[=false]
    trust invalid certificates

OPTIONS INHERITED FROM PARENT COMMANDS
--config=""
    config file (default $HOME/.config/desync/config.json)

--digest="sha512-256"
    digest algorithm, sha512-256 or sha256

--verbose[=false]
    verbose mode

EXAMPLE
      desync extract -s http://192.168.1.1/ -c /path/to/local file.caibx largefile.bin
      desync extract -s /mnt/store -s /tmp/other/store file.tar.caibx file.tar
      desync extract -s /mnt/store --seed /mnt/v1.caibx v2.caibx v2.vmdk
      desync extract -s /mnt/store --seed /tmp/v1.caibx:/mnt/v1 v2.caibx v2.vmdk

SEE ALSO
desync(1)

HISTORY
5-Sep-2026 Auto generated by spf13/cobra