Backup regions, bucket names & target URLs
multiback/mybackup construct the bucket name and the Duplicity target URL
deterministically per backend. You do not pick the bucket name; you create a
matching bucket up front where the provider requires it.
Bucket name construction
_construct_bucket_name builds:
back-to-<user>-<hostname-with-dots-as-dashes>-<service-with-underscores-as-dashes>
<user>— the path-set selector:global,dataorcustomroot-side, or the tenant'so###user.<hostname>—_hNameread from/etc/hostname(falling back tohostname -f), dots replaced with dashes. Verify withcat /etc/hostname, notuname -n— the two can differ and only/etc/hostnameis used.<service>— the backend key with underscores replaced by dashes (aws_one_zonebecomesaws-one-zone).
Example: tenant o123 on fr8.eu.aegir.cc to Wasabi gives
back-to-o123-fr8-eu-aegir-cc-wasabi. The underscore-to-dash swap applies only
inside the bucket name; the credential file keeps the underscored key
(do_spaces.txt).
The legacy tools use their own host-wide names: backboa uses
daily-boa-<host-with-dashes>, duobackboa uses
daily-remote-<host-with-dashes> (see Legacy backboa).
Per-backend target URLs
_set_backup_target builds the Duplicity URL, interpolating the credential
values per backend (the passphrase is never here — it is the separate
PASSPHRASE env var):
| Backend key | Target URL form |
|---|---|
aws / aws_one_zone / aws_standard_ia |
boto3+s3://<bucket> plus --s3-endpoint-url https://s3.dualstack.<region>.amazonaws.com --s3-region-name <region> (the two IA variants add --s3-use-ia) |
azure |
azure://<storage-account>@<bucket> |
b2 |
b2://<account-id>:<application-key>@<bucket> (both URL-encoded) |
cloudflare |
boto3+s3://<key>:<secret>@<account>.r2.cloudflarestorage.com/<bucket> |
do_spaces |
s3://<key>:<secret>@<region>/<bucket> |
gcs |
gs://<bucket> |
ibm |
ibmcos://<api-key>:<service-instance>@<region>/<bucket> |
linode |
s3://<access-key>:<secret-key>@<region>/<bucket> |
wasabi |
s3://<access-key>:<secret-key>@<region>/<bucket> |
The region comes from the backend's own region variable in the credential file
(AWS_REGION, DO_SPACES_REGION, LINODE_REGION, WASABI_REGION,
IBM_REGION) — Cloudflare R2 is region-less (geographic placement is
automatic), and B2/Azure/GCS take the region from the account, not the URL.
Bucket auto-creation policy
Most providers auto-create the bucket on first write if credentials have permission. Several do not and must have the bucket created by hand first:
| Provider | Auto-create | Action |
|---|---|---|
| Wasabi | Yes | none |
| Backblaze B2 | Yes | none |
| DigitalOcean Spaces | Yes (write perms) | none |
| Google Cloud Storage | Yes (write perms) | none |
| Microsoft Azure Blob | Yes | none |
| AWS S3 | Unreliable | create manually (region propagation delays) |
| Cloudflare R2 | Not supported | create manually before first backup |
| IBM Cloud Object Storage | Not supported | create manually before first backup |
| Linode Object Storage | Not supported | create manually before first backup |
When creating by hand, use the exact constructed name
(back-to-<user>-<hostname-with-dashes>-<service-with-dashes>) in the provider
console, keep the bucket private (BOA uses per-account credentials, not bucket
ACLs), and pick the region closest to the host.
Connectivity test
After credentials and (where required) the bucket are in place, verify with the
test action — it runs duplicity cleanup --dry-run --timeout 8 and reports
whether it can reach the bucket:
multiback test wasabi data
test failure messages distinguish a missing/wrong-named bucket from a
backend-connection failure. mybackup has no test action (its only verb is
restore); a tenant's connectivity is exercised through the root-side
scheduled run.
Choosing a region
- Match the host's geographic region for lower restore latency and egress.
- Avoid cross-continent destinations unless data-residency requires it.
- A single-region account per host is sufficient; provider-level cross-region replication is overkill for this use case.
Region codes per backend
The region code is provider-defined reference, not a value BOA validates.
multiback interpolates whatever the credential file's region variable holds
straight into the target URL in _set_backup_target, with no allowlist, so a
wrong or misspelled code surfaces only when the test action tries to reach the
bucket. For Wasabi, DigitalOcean Spaces, Linode and IBM the code is the value for
WASABI_REGION, DO_SPACES_REGION, LINODE_REGION and IBM_REGION; for
Backblaze B2, Azure and Google Cloud Storage the target URL carries no region, so
the code is what you choose when you create the account or bucket at the provider.
Cloudflare R2 has no region — placement is automatic, with optional location
hints.
These are provider-defined lists that grow as each vendor opens new data centres,
so treat the tables below as a snapshot rather than an allowlist and check the
linked provider reference for the current set. The Google Cloud Storage, Azure and
IBM tables are partial to begin with; the others track each provider's full
published list at the time of writing. The AWS S3 backend uses the standard AWS
region names (us-east-1, eu-central-1, …); its full accepted set is enumerated
under Legacy backboa.
Wasabi
| Data centre | Region code |
|---|---|
| Virginia, USA | us-east-1 |
| Virginia, USA | us-east-2 |
| Oregon, USA | us-west-1 |
| Plano, Texas, USA | us-central-1 |
| Toronto, Canada | ca-central-1 |
| London, England | eu-west-1 |
| Paris, France | eu-west-2 |
| Amsterdam, Netherlands | eu-central-1 |
| Frankfurt, Germany | eu-central-2 |
| Milan, Italy | eu-south-1 |
| Tokyo, Japan | ap-northeast-1 |
| Osaka, Japan | ap-northeast-2 |
| Singapore | ap-southeast-1 |
| Sydney, Australia | ap-southeast-2 |
Current list: Wasabi storage regions.
Backblaze B2
| Data centre | Region code |
|---|---|
| Amsterdam, Netherlands | eu-central |
| Reston, Virginia | us-east |
| Sacramento, California | us-west |
| Stockton, California | us-west |
| Phoenix, Arizona | us-west |
| Toronto, Ontario | ca-east |
B2 derives the region from the account, so the b2:// target URL carries no
region and these codes are informational only. The region is fixed when you
create the B2 account and cannot be changed afterwards — to back up to more
than one B2 region you need a separate B2 account per region. Current list:
Backblaze B2 data regions.
DigitalOcean Spaces
| Data centre | Region code |
|---|---|
| New York City, United States | nyc3 |
| San Francisco, United States | sfo2 |
| San Francisco, United States | sfo3 |
| Amsterdam, Netherlands | ams3 |
| Singapore | sgp1 |
| London, United Kingdom | lon1 |
| Frankfurt, Germany | fra1 |
| Toronto, Canada | tor1 |
| Bangalore, India | blr1 |
| Sydney, Australia | syd1 |
Current list: DigitalOcean regional availability.
Google Cloud Storage
GCS takes its location from the bucket, not the target URL; the code is set when the bucket is created. Partial list:
| Data centre | Region code |
|---|---|
| Iowa (US Central) | us-central1 |
| South Carolina (US East) | us-east1 |
| Northern Virginia (US East) | us-east4 |
| Oregon (US West) | us-west1 |
| Los Angeles (US West) | us-west2 |
| Salt Lake City (US West) | us-west3 |
| Las Vegas (US West) | us-west4 |
| Montreal (Canada) | northamerica-northeast1 |
| São Paulo (South America) | southamerica-east1 |
| Santiago (South America) | southamerica-west1 |
| Finland (Europe) | europe-north1 |
| Belgium (Europe) | europe-west1 |
| London (Europe) | europe-west2 |
| Frankfurt (Europe) | europe-west3 |
| Netherlands (Europe) | europe-west4 |
| Zurich (Europe) | europe-west6 |
| Warsaw (Europe) | europe-central2 |
| Sydney (Australia) | australia-southeast1 |
| Jakarta (Indonesia) | asia-southeast2 |
| Singapore | asia-southeast1 |
| Taiwan | asia-east1 |
| Hong Kong | asia-east2 |
| Tokyo | asia-northeast1 |
| Osaka | asia-northeast2 |
| Seoul | asia-northeast3 |
| Mumbai | asia-south1 |
| Delhi | asia-south2 |
Current list: Cloud Storage locations.
Azure Blob Storage
Azure takes the region from the storage account, not the target URL. Partial list:
| Region name | Region code |
|---|---|
| East US | eastus |
| East US 2 | eastus2 |
| Central US | centralus |
| North Central US | northcentralus |
| South Central US | southcentralus |
| West US | westus |
| West US 2 | westus2 |
| West US 3 | westus3 |
| Canada Central | canadacentral |
| Canada East | canadaeast |
| Brazil South | brazilsouth |
| Brazil Southeast | brazilsoutheast |
| Europe North | northeurope |
| Europe West | westeurope |
| France Central | francecentral |
| France South | francesouth |
| Germany North | germanynorth |
| Germany West Central | germanywestcentral |
| Switzerland North | switzerlandnorth |
| Switzerland West | switzerlandwest |
| UK South | uksouth |
| UK West | ukwest |
| Australia East | australiaeast |
| Australia Southeast | australiasoutheast |
| Australia Central | australiacentral |
Current list: Azure geographies.
IBM Cloud Object Storage
Partial list:
| Region name | Region code |
|---|---|
| US Cross Region | us |
| US South (Dallas) | us-south |
| US East (Washington DC) | us-east |
| EU Cross Region | eu |
| EU Central (Frankfurt) | eu-de |
| EU North (Oslo) | eu-north |
| EU West (Milan) | eu-it |
| Asia Pacific Cross Region | ap |
| Asia Pacific North (Tokyo) | jp-tok |
| Asia Pacific South (Sydney) | au-syd |
Current list: IBM Cloud Object Storage endpoints.
Akamai (Linode) Object Storage
| Data centre | Region code |
|---|---|
| Amsterdam, Netherlands | nl-ams-1 |
| Atlanta, GA, USA | us-southeast-1 |
| Chennai, India | in-maa-1 |
| Chicago, IL, USA | us-ord-1 |
| Frankfurt, Germany | eu-central-1 |
| Jakarta, Indonesia | id-cgk-1 |
| Los Angeles, CA, USA | us-lax-1 |
| Madrid, Spain | es-mad-1 |
| Miami, FL, USA | us-mia-1 |
| Milan, Italy | it-mil-1 |
| Newark, NJ, USA | us-east-1 |
| Osaka, Japan | jp-osa-1 |
| Paris, France | fr-par-1 |
| São Paulo, Brazil | br-gru-1 |
| Seattle, WA, USA | us-sea-1 |
| Singapore | ap-south-1 |
| Stockholm, Sweden | se-sto-1 |
| Washington, DC, USA | us-iad-1 |
Current list: Akamai object storage.
Cloudflare R2
R2 has no region variable; placement is automatic. Optional location hints bias where data is stored (best-effort, not guaranteed):
| Region | Location hint |
|---|---|
| Western North America | wnam |
| Eastern North America | enam |
| Western Europe | weur |
| Eastern Europe | eeur |
| Asia-Pacific | apac |
| Oceania | oc |
Current list: R2 data location hints.
Related
- multiback operations — credential files that feed these URLs.
- CLI reference — the
testverb. - Legacy backboa — the
daily-boa-<host>AWS-only scheme and the full_AWS_REGregion list.