Duplicati to cloud storage: what nightly backups cost at each vendor, checks included
Prices checked · Duplicati 2.4.0.1 source and documentation read
For 1 TB backed up every night with Duplicati, OVHcloud Object Storage Infrequent Access costs least: $54.22 a year with one full restore, that is $4.18 a normal month and $8.24 the month you bring everything back. Duplicati's check after each backup downloads about 30 GB a month here: it costs nothing at 6 of the 13 vendors ranked and as much as $0.91 a month at Azure Blob Storage Cold LRS.
Duplicati downloads part of your backup after every run. Once a backup is uploaded, "some samples (one sample is 1 dblock, 1 dindex, and 1 dlist) files from the remote backend are selected for verification": the larger of 1 sample and 0.1% of the volumes. With 19,073 volumes of 50 MiB that is 19 samples, about 1 GB a night: 3% of the backup comes back down every month, a share that stays the same as the backup grows. Where downloads are billed, so is the check; in a class that bills each GB read, it is billed twice. Duplicati, --backup-test-percentage · Duplicati source, the check after a backup
Every vendor for a Duplicati backup, cheapest year first
One row per vendor: its cheapest class you can read back at once, on Duplicati's defaults, 11 normal months and the month you restore all 1 TB, with versions kept 30 days. The next column is the same class testing one sample a night, with --backup-test-percentage=0.
| # | Offer, and where it keeps the volumes | Year with one restore | Normal month | Testing one sample a night | Month you restore | Checked |
|---|---|---|---|---|---|---|
| 1 | OVHcloud Object Storage Infrequent Access France (Gravelines) | $54.22 | $4.18 Checks after backups $0.12 | $4.07 | $8.24 | |
| 2 | IDrive e2 United States (Virginia) | $72.00 | $6.00 | $6.00 | $6.00 | |
| 3 | | $82.56 | $6.88 | $6.88 | $6.88 | |
| 4 | Tigris Archive Instant Retrieval Automatic location | $87.10 | $4.93 Checks after backups $0.83 Deleting at 30 days $0.37 | $4.14 | $32.87 | |
| 5 | | $93.52 | $7.21 Checks after backups $0.21 | $7.01 | $14.21 | |
| 6 | | $104.64 | $8.72 Deleting at 30 days $0.73 | $8.72 | $8.72 | |
| 7 | Oracle OCI Object Storage Infrequent Access United States (Ashburn) | $122.23 | $9.41 Checks after backups $0.18 Deleting at 30 days $0.02 | $9.23 | $18.72 | |
| 8 | DigitalOcean Spaces Cold Storage United States (New York 3) | $138.52 | $11.52 | $11.52 | $11.80 | |
| 9 | Amazon S3 Glacier Instant Retrieval United States (Northern Virginia) Duplicati counts this class as cold storage and leaves it out of the check unless you take GLACIER_IR off --s3-archive-classes; the bill counts the check | $165.65 | $5.00 Checks after backups $0.85 Deleting at 30 days $0.37 | $4.19 | $110.65 | |
| 10 | Azure Blob Storage Cold LRS United States (East US) | $167.44 | $4.68 Checks after backups $0.91 Deleting at 30 days $0.34 | $3.81 | $115.96 | |
| 11 | Filebase Object Storage Distributed worldwide | $167.64 | $13.97 | $13.97 | $13.97 | |
| 12 | Google Cloud Storage Coldline United States (South Carolina) | $177.53 | $4.65 Checks after backups $0.56 Deleting at 30 days $0.37 | $4.13 | $126.38 | |
| 13 | | $180.00 | $15.00 | $15.00 | $15.00 |
"Checks after backups" is what downloading the samples costs each month. "Deleting at 30 days" is the most a class with a longer minimum storage period bills for the volumes your old versions leave behind: it counts every deleted volume as uploaded 30 days earlier. Classes that make each file wait to be restored are left out: Duplicati's documentation says you "must manually move files from cold storage into the bucket before attempting the restore operation". Duplicati, Amazon S3 Destination
Price your own Duplicati backup Price it testing one sample a night
The calculator opens on this backup, with the check's downloads entered as monthly downloads and its uploads, listings and reads as requests: when you change the size to yours, change those too. It does not count the deletions at 30 days, which the table above adds.
Vendors not ranked, and why
- Akamai Cloud Object Storage: not confirmed. It costs $240.15 a year before any minimum-stay charge, but its pricing names no minimum storage period, so what deleting a volume at a month old costs is not confirmed.
- Hetzner Object Storage: not confirmed. It costs $95.88 a year before any minimum-stay charge, but its pricing names no minimum storage period, so what deleting a volume at a month old costs is not confirmed. If it has none, it would rank 6th here.
- Scaleway Object Storage: not confirmed. Standard One Zone costs $118.57 a year before any minimum-stay charge, but its pricing names no minimum storage period, so what deleting a volume at a month old costs is not confirmed. If it has none, it would rank 7th here.
- Telnyx Cloud Storage: not confirmed. Regular Storage costs $66.36 a year before any minimum-stay charge, but its pricing names no minimum storage period, so what deleting a volume at a month old costs is not confirmed. If it has none, it would rank 2nd here.
- Vultr Object Storage: not confirmed. Standard costs $216.30 a year before any minimum-stay charge, but its pricing names no minimum storage period, so what deleting a volume at a month old costs is not confirmed.
What Duplicati asks of the bucket in a month
| Request | Duplicati's defaults | One sample a night |
|---|---|---|
| Uploads: new volumes, their index files and a file list each night | 1,950 | 1,950 |
| Listings of the destination, before and after each backup | 2,340 | 2,340 |
| Downloads by the check after each backup | 1,710 | 90 |
| Data the check downloads | 29.9 GB | 1.6 GB |
Duplicati cuts files into 1 MiB blocks and packs them into remote volumes of 50 MiB, so 1 TB becomes about 19,073 volumes, each with a small index file: the source size divided by the volume size, as Duplicati's documentation estimates it. That keeps requests few and cheap at every vendor. The other side of large volumes: "it is required that a full remote volume is downloaded to restore even a small file", so bringing back one document downloads at least 50 MiB. Set the block size before the first backup: "it is not possible to change it after running the initial backup". Duplicati, Backup size parameters · Duplicati source, option defaults
The bills count one 50 MiB volume for each sample the check downloads; its index and file list are counted as downloads but not as gigabytes, and a file list grows with the number of files you back up.
Compacting, and what it downloads
When old versions are deleted, "Duplicati will mark any data that can no longer be referenced as waste, and may occasionally choose to run a compact process that deletes unused volumes and
creates new volumes with no wasted space". A volume nobody needs is deleted outright; one that is only partly wasted, past the 25% default
--threshold, is downloaded and its blocks still in use are uploaded again in new volumes. Small volumes, such as each night's last one, are combined too: "The small volumes will always be
combined when they can fill an entire volume."
- Each volume a compact rewrites is a download, billed as the month-you-restore column bills downloads, and its replacement starts any minimum storage period again.
- How much a compact rewrites depends on how your files change, so the bills above do not count it; files that are only ever added and later deleted whole leave volumes to delete, not to rewrite.
- With Amazon S3's Glacier classes, Duplicati's documentation says to set
--no-auto-compactwhen versions are deleted, "as Duplicati will otherwise attempt to download the files from cold storage, in order to compact them".
Duplicati, Retention settings · Duplicati, --threshold and --small-file-max-count · Duplicati, Amazon S3 Destination
A setup that protects the backup
- On the s3 backend, add
use-ssl=true. Duplicati's documentation: "Note that the default for S3 is to use unencrypted connections." They are signed, but "all data transferred can be captured through the network"; Duplicati's own encryption, on by default, still protects what is inside the volumes. Duplicati, S3-compatible Destination - Keep the passphrase and the storage details somewhere other than the computer you back up. To restore, "Duplicati needs only to know how to access the files and the encryption passphrase (if any). If you do not have the passphrase, it is not possible to restore." Duplicati, Restoring files
- Set a retention rule, or nothing is ever deleted: with
--keep-time,--keep-versionsor--retention-policy, "a successful backup will subsequently invoke the delete and compact operation as needed". The interface's "Smart backup retention" is1W:1D,4W:1W,12M:1M: a backup a day for a week, one a week for four weeks, one a month for a year. This page keeps 30 days,--keep-time=30D. Duplicati, Command Line Interface - At a vendor whose class bills a minimum storage period, keeping versions that long costs the same as deleting them sooner: a volume deleted early is billed to the end of the period anyway. The longer history comes free.
-
Lock the volumes against ransomware with
--remote-file-lock-duration=30D: Duplicati then has the vendor lock "every file it uploads", and "Duplicati and the machine it runs on does not have any way to unlock the files". 7 of the 13 offers ranked above can hold that lock: OVHcloud Object Storage, IDrive e2, Backblaze B2, Wasabi, Amazon S3, Azure Blob Storage and Google Cloud Storage. The others cannot, or do not say they can: Tigris (it does not document Object Lock); Storj (Duplicati's storj backend for it cannot lock files); Oracle OCI Object Storage (it locks whole buckets with retention rules, not each file as Duplicati asks); DigitalOcean Spaces (it does not document Object Lock); Filebase (it has no Object Lock); Cloudflare R2 (it locks whole buckets with retention rules, not each file as Duplicati asks). Turn Object Lock on for the bucket before the first backup; Amazon S3 and Backblaze B2 need versioning on first. Lock no longer than you keep versions: Duplicati keeps any version whose files are still locked, and they are billed until the lock ends. With versioning on, a volume Duplicati deletes stays behind as an older version, still billed, until a lifecycle rule removes it: Duplicati's documentation says to add one "to permanently remove non-current versions once the lock expires". Duplicati, Using remote file locking · Duplicati source, deleting locked versions · which vendors offer Object Lock
Test a restore from another computer
- On a second computer, choose "Direct restore from backup files" and give only the storage address, its keys and the passphrase. It proves what a lost computer would need: that the passphrase you kept opens the backup. Without the computer's own database, Duplicati first downloads "enough information from the remote storage to build a partial database", so the test downloads more than the files you restore.
- Restore one folder to a staging folder, never over the original:
duplicati-cli restore <storage address> "*" --restore-path=/tmp/restore-test, with--includeto pick the folder. Open a few files. - Each file brought back downloads the whole volumes that hold its blocks: small files "may be scattered across multiple remote volumes, causing a large download", so a folder can download much more than its size.
Duplicati, Restoring files · Duplicati, restore · Duplicati, Backup size parameters. What bringing everything back costs at each vendor is the month-you-restore column above.
On Windows, Mac and Linux
Duplicati 2.4.0.1 comes for Windows, macOS and Linux (its release's downloads). The bills above are the same on each: the bucket receives the same volumes.
Files another program holds open need a disk snapshot, which --snapshot-policy controls: on Windows the Volume Shadow Copy service, with administrator rights; on Linux LVM and on a
Mac APFS snapshots, both as root. Duplicati tries one by default only on Windows, and only when it runs with the right to back up every file: elevated as an administrator, or as the
system account. Everywhere else the default is off: add --snapshot-policy=auto, or required, which "will make Duplicati abort the backup if the snapshot
creation fails" rather than run without one.
Duplicati source, the snapshot option · Duplicati source, its default · Duplicati source, the backup right · Duplicati 2.4.0.1 downloads
The storage address Duplicati takes at each vendor
Duplicati has its own backend for Azure Blob Storage, Backblaze B2, Google Cloud Storage, IDrive e2 and Storj:
- Azure Blob Storage:
azure://container/folder - Backblaze B2:
b2://bucket/folder - Google Cloud Storage:
gcs://bucket/folder - IDrive e2:
e2://bucket/folder - Storj:
storj://
Akamai Cloud Object Storage, Amazon S3, Cloudflare R2, DigitalOcean Spaces, Filebase, Hetzner Object Storage, Oracle OCI Object Storage, OVHcloud Object Storage, Scaleway Object Storage, Telnyx Cloud Storage, Tigris, Vultr Object Storage and Wasabi take the s3 backend with the vendor's own endpoint for its region: s3://bucket/folder?s3-server-name=endpoint&use-ssl=true
(Amazon S3 takes its region instead: s3://bucket/folder?s3-location-constraint=region&use-ssl=true). Duplicati's documentation adds that providers other than AWS often need either
--s3-disable-chunk-encoding or the Minio client, --s3-client=minio, "but not both".
On Amazon S3, Duplicati's default --s3-archive-classes is DEEP_ARCHIVE,GLACIER,GLACIER_IR,SNOW: it treats Glacier Instant Retrieval as cold storage and skips it in the check after each backup.
Duplicati 2.4.0.1, released . s3 · b2 · azure · gcs · e2 · storj · Duplicati on GitHub
How the bills are worked out
A 1 TB Duplicati backup of files that do not compress further, such as photos and video, stored as about 19,000 volumes of 50 MiB, each with a small index file. A nightly backup adds 50 GB a month: 960 volumes and their indexes, and 30 file lists, about 1,950 uploads; each run lists the destination before and after the backup, about 2,300 listings a month. After each backup Duplicati downloads 19 samples, each a volume, its index and a file list: about 30 GB and 1,710 downloads a month. Versions are kept 30 days, so each month 50 GB of volumes is deleted at about 30 days old. The month you restore, all 1 TB comes back over the internet.
Each bill comes from the vendor's own published rates through the same engine as the calculator, checked on the date beside it. The volume size, the test sample rule and the listings come from Duplicati's own code and documentation; the size of the nightly change and the 30-day retention are an example. A class with a minimum storage period bills the days left on each volume deleted younger than it. Compacting is not counted.
Related: other backup tools and their storage · which vendors charge nothing for downloads · storage for Duplicacy · storage for a restic repository
Duplicati's pages behind this one
- Options.cs (version 2.4.0.1), Duplicati source code on GitHub, read
- Strings.cs: the options' help text (version 2.4.0.1), Duplicati source code on GitHub, read
- BackupHandler.cs: the check after a backup (version 2.4.0.1), Duplicati source code on GitHub, read
- Sizeparser.cs: what "mb" means (version 2.4.0.1), Duplicati source code on GitHub, read
- How the backup process works, Duplicati documentation, read
- Backup size parameters, Duplicati documentation, read
- Retention settings, Duplicati documentation, read
- Using remote file locking, Duplicati documentation, read
- DeleteHandler.cs: deleting old versions (version 2.4.0.1), Duplicati source code on GitHub, read
- S3-compatible Destination, Duplicati documentation, read
- Amazon S3 Destination, Duplicati documentation, read
- Restoring files, Duplicati documentation, read
- Command Line Interface CLI, Duplicati documentation, read
- Backblaze B2 Destination, Duplicati documentation, read
- Azure Blob Storage Destination, Duplicati documentation, read
- Google Cloud Storage Destination, Duplicati documentation, read
- IDrive e2 Destination, Duplicati documentation, read
- Storj Destination, Duplicati documentation, read
- PermissionHelper.cs (version 2.4.0.1), Duplicati source code on GitHub, read
- Release v2.4.0.1_stable_2026-10-07, Duplicati on GitHub, read