(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 class
and 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.json
for an export of a backup created with the web UI and withGLACIER_IR
as 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"
}
}