Skip to main content
The archive command scans a local directory, encrypts and deduplicates its contents using AES-256, and uploads the resulting chunks to Azure Blob Storage. Each archived binary file is replaced by a lightweight .pointer.arius file that preserves the directory structure without storing the actual data locally.

Usage

arius archive <LocalRoot>
  --accountname <name>   (or -n)
  --accountkey  <key>    (or -k)
  --passphrase  <passphrase>  (or -p)
  --container   <container>   (or -c)
  [--tier       <hot|cool|archive>]
  [--remove-local]

Parameters

Positional

LocalRoot
string
required
Path to the local root directory to archive. All files under this directory are scanned recursively.

Options

--accountname
string
required
Azure Storage Account name. Short flag: -n. If not provided as a flag, falls back to the ARIUS_ACCOUNT_NAME environment variable.
--accountkey
string
required
Azure Storage Account key. Short flag: -k. If not provided as a flag, falls back to the ARIUS_ACCOUNT_KEY environment variable.
--container
string
required
Azure Blob Storage container name. Short flag: -c.
--passphrase
string
required
Passphrase used to encrypt uploaded blobs with AES-256. Short flag: -p. Store this securely — without it, data cannot be decrypted.
--tier
string
default:"archive"
Storage tier for uploaded blobs. Accepted values: hot, cool, archive. The archive tier is the lowest-cost option but requires rehydration before download.
--remove-local
boolean
default:"false"
Remove the original local binary files after a successful upload. The pointer file is always retained. Use with caution — removed files must be restored from Azure.

Complete example

arius archive /data/photos \
  --accountname mystorageaccount \
  --accountkey  "base64encodedkey==" \
  --passphrase  "my secret phrase" \
  --container   arius-backups \
  --tier        archive \
  --remove-local
Using environment variables for credentials:
export ARIUS_ACCOUNT_NAME=mystorageaccount
export ARIUS_ACCOUNT_KEY=base64encodedkey==

arius archive /data/photos \
  --passphrase "my secret phrase" \
  --container  arius-backups

Archive result output

After a successful run, Arius prints a summary table with local and remote statistics.
MetricDescription
TotalLocalFilesTotal number of files scanned in the local root directory.
BytesUploadedUncompressedRaw size of files uploaded during this run before compression.
BytesUploadedCompressedCompressed size actually transferred to Azure.
ExistingPointerFilesNumber of pointer files already present before the run.
PointerFilesCreatedNumber of new pointer files created during this run.
PointerFileEntriesDeletedNumber of stale pointer file entries removed from the state.
UniqueBinariesUploadedNumber of unique binary objects uploaded (deduplication applied).
UniqueChunksUploadedNumber of unique chunks uploaded (deduplication applied).
BinariesBeforeOperationTotal binaries in the repository before this run.
BinariesAfterOperationTotal binaries in the repository after this run.
ChunksBeforeOperationTotal chunks in the repository before this run.
ChunksAfterOperationTotal chunks in the repository after this run.
ArchivedSizeBeforeOperationTotal remote size before this run.
ArchivedSizeAfterOperationTotal remote size after this run.
NewStateNameName of the updated state file written to Azure.
FilesSkippedNumber of files skipped (e.g. already archived with matching hash).
WarningsList of non-fatal warning messages generated during the run.

Notes

Arius performs file-level deduplication by default. Files with identical content are stored only once in the repository regardless of how many local copies exist.
The ArchiveCommand also exposes advanced properties for programmatic use: HashingParallelism (default: processor count), UploadParallelism (default: min 4, processor count), and SmallFileBoundary (default: 1 MB). These are not exposed as CLI flags.

Build docs developers (and LLMs) love