(note: this thread is a duplication of an issue I opened on github: #4882 as I’ve been told the forum is the preferred way of communication for Duplicati’s team)
Unwanted Behaviour Description
Environment info
- Duplicati version:
2.0.6.3_beta_2021-06-17 - Operating system:
Ubuntu 20.04 - Backend:
Amazon S3 - Misc: Running from Docker image
linuxserver/duplicati:2.0.6
Description
Trying to backup files to Amazon S3 storage class GLACIER_IR is:
- successful using the command line;
- defaulting to standard storage class using the web UI.
Steps to reproduce
Using Duplicati’s Web UI, on freshly installed instance
Steps
- Click “+ Add backup”
- Select “Configure a new backup”, click “Next >”
- Set “1. General” as pleases you, click “Next >”
- Set:
- Storage Type:
S3 Compatible - Storage class:
Custom storage classand enterGLACIER_IR - Set other fields accordingly to your Amazon setup
- Click “Next >”
- Set “3. Source Data”, “4. Schedule” and “5. Options” as pleases you, click “Save”.
- Go back to the web UI “Home” page, and “Run now” your newly created backup.
Seeissue-4882-webui-backup.jsonfor an export of a backup created with the web UI and withGLACIER_IRas custom storage class.
Actual result
- Objects on Amazon’s servers are created with the “Standard” storage class.
- Backup exports do not mention the custom storage class, neither in JSON exports nor when trying to edit the backup using the web UI (defaults to
default).
Screenshots
Expected result
- Objects on Amazon’s servers are created with the “Glacier Instant Retrieval” storage class.
Using Duplicati’s command line, on freshly installed instance
Steps
Run
mono /app/duplicati/Duplicati.CommandLine.exe backup \
"s3s://(redacted)/test-06?s3-server-name=s3.eu-west-3.amazonaws.com&s3-location-constraint=eu-west-3&s3-storage-class=GLACIER_IR&s3-client=aws&auth-username=(redacted)&auth-password=(redacted)" \
/source/media/ \
--backup-name="GLACIER_IR test6" \
--dbpath=/data/glacier-ir-test6.sqlite \
--encryption-module=aes \
--compression-module=zip \
--dblock-size=50mb \
--passphrase=(redacted) \
--keep-versions=2 \
--disable-module=console-password-input
Screenshots
Debug log
No relevant log found.
Analysis
It appears to be a purely web UI bug: its backend does not list GLACIER_IR as a possible storage class to its front-end:
HTTP/2 POST /api/v1/webmodule/s3-getconfig
(headers removed for simplicity)
s3-config: "StorageClasses"
---
HTTP 200
(headers removed for simplicity)
{
"Status": "OK",
"Result": {
"(default)": "",
"Standard": "STANDARD",
"Infrequent Access (IA)": "STANDARD_IA",
"One Zone Infrequent Access (One Zone IA)": "ONEZONE_IA",
"Glacier": "GLACIER",
"Deep Archive": "DEEP_ARCHIVE",
"Reduced Redundancy Storage (RRS)": "REDUCED_REDUNDANCY",
"Intelligent Tiering": "INTELLIGENT_TIERING"
}
}

