diff --git a/src/backups.js b/src/backups.js index 4712e1b64..97f40cd64 100644 --- a/src/backups.js +++ b/src/backups.js @@ -100,6 +100,7 @@ function api(provider) { case 's3': return require('./storage/s3.js'); case 'filesystem': return require('./storage/filesystem.js'); case 'minio': return require('./storage/s3.js'); + case 's3-v4-compat': return require('./storage/s3.js'); case 'exoscale-sos': return require('./storage/s3.js'); case 'noop': return require('./storage/noop.js'); default: return null; diff --git a/webadmin/src/views/settings.html b/webadmin/src/views/settings.html index 027307cfb..26052737f 100644 --- a/webadmin/src/views/settings.html +++ b/webadmin/src/views/settings.html @@ -147,9 +147,9 @@ -
+
- +
@@ -336,7 +336,7 @@
{{ backupConfig.backupFolder }} - {{ backupConfig.bucket + '/' + backupConfig.prefix }} + {{ backupConfig.bucket + '/' + backupConfig.prefix }} {{ backupConfig.region + ' ' + backupConfig.bucket + '/' + backupConfig.prefix }}
diff --git a/webadmin/src/views/settings.js b/webadmin/src/views/settings.js index a210fcbfd..a01e9de32 100644 --- a/webadmin/src/views/settings.js +++ b/webadmin/src/views/settings.js @@ -45,7 +45,8 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca { name: 'Exoscale SOS', value: 'exoscale-sos' }, { name: 'Filesystem', value: 'filesystem' }, { name: 'Minio', value: 'minio' }, - { name: 'No-op (Only for testing)', value: 'noop' } + { name: 'No-op (Only for testing)', value: 'noop' }, + { name: 'S3 API Compatible (v4)', value: 's3-v4-compat' }, ]; $scope.retentionTimes = [ @@ -295,7 +296,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca }; $scope.s3like = function (provider) { - return provider === 's3' || provider === 'minio' || provider === 'exoscale-sos'; + return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat' || provider === 'exoscale-sos'; }; $scope.configureBackup = { @@ -362,7 +363,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca if (backupConfig.provider === 's3') { if ($scope.configureBackup.region) backupConfig.region = $scope.configureBackup.region; - } else if (backupConfig.provider === 'minio') { + } else if (backupConfig.provider === 'minio' || backupConfig.provider === 's3-v4-compat') { backupConfig.region = 'us-east-1'; } else if (backupConfig.provider === 'exoscale-sos') { backupConfig.endpoint = 'https://sos.exo.io';