Skip to main content
If the Arius CLI is unavailable — for example in a disaster recovery scenario — you can retrieve and decrypt your files using only Azure Storage Explorer (or the Azure CLI), OpenSSL, and gzip. This page walks through every scenario.
Use this path when the .pointer.arius file for the file you want to restore is still present on disk.
1

Find the BinaryHash

Open the .pointer.arius file with any text editor (e.g. Notepad). Locate the BinaryHash value — it is a 64-character hexadecimal string.
BinaryHash: 3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b
2

Locate the blob in Azure

Using Azure Storage Explorer, navigate to your storage account and container. Open the chunks/ folder and find the blob whose name matches the BinaryHash value from the pointer file. Download it to your local machine.
3

Decrypt the blob

openssl enc -d -aes-256-cbc \
  -in  <downloaded-blob-file> \
  -out original.file.gz \
  -pass pass:"your passphrase" \
  -pbkdf2
4

Decompress the file

gzip -d original.file.gz -f
The restored file is now available as original.file.
Use this path when the pointer file has been deleted or is not accessible, but you know the relative path of the file in the archive.
1

Download the latest state file

In Azure Storage Explorer, navigate to the states/ folder in your container. Download the most recent file — it is a compressed, encrypted SQLite database that Arius uploads after each archive run.
2

Decrypt the state file

openssl enc -d -aes-256-cbc \
  -in  <state-file> \
  -out state.db.gz \
  -pass pass:"your passphrase" \
  -pbkdf2
3

Decompress the state database

gzip -d state.db.gz -f
4

Find the BinaryHash in the database

Open state.db with DB Browser for SQLite. Navigate to the PointerFileEntries table and filter on the RelativeName column to find the row for your file. Copy the value in the BinaryHash column.
5

Proceed as in Scenario 1

With the BinaryHash in hand, follow steps 2–4 from Scenario 1 to locate the blob in Azure, decrypt it, and decompress it.
Use this path when the chunks/ folder contains no blob matching your BinaryHash, or when you know the archive was created with the --dedup flag. In this case the file is stored as multiple chunks and a chunklist describes how to reassemble them.
1

Download the chunklist blob

In Azure Storage Explorer, navigate to the chunklist/ folder in your container. Download the blob whose name matches the BinaryHash of your file (obtained from the pointer file or the state database as described in Scenarios 1 and 2).
2

Read the chunklist

Open the downloaded chunklist file with a text editor. It contains an ordered list of chunk hashes, one per line:
a1b2c3d4...
e5f6a7b8...
c9d0e1f2...
3

Download each chunk

For each hash listed in the chunklist, download the corresponding blob from the chunks/ folder in your container.
4

Decrypt each chunk

Decrypt each chunk individually using OpenSSL:
openssl enc -d -aes-256-cbc \
  -in  chunk_a1b2c3d4 \
  -out chunk_a1b2c3d4.gz \
  -pass pass:"your passphrase" \
  -pbkdf2

gzip -d chunk_a1b2c3d4.gz -f
Repeat for every chunk in the list.
5

Concatenate the chunks

Reassemble the original file by concatenating the decrypted chunks in the order listed in the chunklist.
cat chunk_a1b2c3d4 chunk_e5f6a7b8 chunk_c9d0e1f2 > original.file
The resulting original.file is the fully restored binary.

Container folder structure reference

FolderContents
chunks/Encrypted, compressed blobs — one per unique file (or chunk when --dedup is used)
chunklist/Text files mapping a file hash to its ordered list of chunk hashes (only present when --dedup was used)
states/Encrypted, compressed SQLite databases uploaded after each archive run

Build docs developers (and LLMs) love