diff --git a/src/backups.js b/src/backups.js
index 26955c7ba..a24a5b989 100644
--- a/src/backups.js
+++ b/src/backups.js
@@ -91,6 +91,7 @@ function api(provider) {
case 's3': return s3;
case 'filesystem': return filesystem;
case 'minio': return s3;
+ case 'exoscale-sos': return s3;
case 'noop': return noop;
default: return null;
}
diff --git a/src/backuptask.js b/src/backuptask.js
index eb05f038f..8197fa890 100755
--- a/src/backuptask.js
+++ b/src/backuptask.js
@@ -28,6 +28,7 @@ function api(provider) {
case 's3': return s3;
case 'filesystem': return filesystem;
case 'minio': return s3;
+ case 'exoscale-sos': return s3;
case 'noop': return noop;
default: return null;
}
diff --git a/webadmin/src/views/settings.html b/webadmin/src/views/settings.html
index e2e53501f..954fd50d5 100644
--- a/webadmin/src/views/settings.html
+++ b/webadmin/src/views/settings.html
@@ -166,7 +166,7 @@
-
+
diff --git a/webadmin/src/views/settings.js b/webadmin/src/views/settings.js
index 33e804e3e..a210fcbfd 100644
--- a/webadmin/src/views/settings.js
+++ b/webadmin/src/views/settings.js
@@ -42,6 +42,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
$scope.storageProvider = [
{ name: 'Amazon S3', value: 's3' },
+ { name: 'Exoscale SOS', value: 'exoscale-sos' },
{ name: 'Filesystem', value: 'filesystem' },
{ name: 'Minio', value: 'minio' },
{ name: 'No-op (Only for testing)', value: 'noop' }
@@ -294,7 +295,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
};
$scope.s3like = function (provider) {
- return provider === 's3' || provider === 'minio';
+ return provider === 's3' || provider === 'minio' || provider === 'exoscale-sos';
};
$scope.configureBackup = {
@@ -357,13 +358,18 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
backupConfig.accessKeyId = $scope.configureBackup.accessKeyId;
backupConfig.secretAccessKey = $scope.configureBackup.secretAccessKey;
+ if ($scope.configureBackup.endpoint) backupConfig.endpoint = $scope.configureBackup.endpoint;
+
if (backupConfig.provider === 's3') {
if ($scope.configureBackup.region) backupConfig.region = $scope.configureBackup.region;
} else if (backupConfig.provider === 'minio') {
backupConfig.region = 'us-east-1';
+ } else if (backupConfig.provider === 'exoscale-sos') {
+ backupConfig.endpoint = 'https://sos.exo.io';
+ backupConfig.region = 'us-east-1';
+ backupConfig.signatureVersion = 'v2';
}
- if ($scope.configureBackup.endpoint) backupConfig.endpoint = $scope.configureBackup.endpoint;
} else if (backupConfig.provider === 'filesystem') {
backupConfig.backupFolder = $scope.configureBackup.backupFolder;
}