diff --git a/src/js/restore.js b/src/js/restore.js
index 0807271a2..e14e2d1ca 100644
--- a/src/js/restore.js
+++ b/src/js/restore.js
@@ -141,6 +141,10 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien
{ name: 'DE', value: 'https://s3-de-central.profitbricks.com', region: 's3-de-central' }, // default
];
+ $scope.vultrRegions = [
+ { name: 'New Jersey', value: 'https://ewr1.vultrobjects.com', region: 'us-east-1' }, // default
+ ];
+
$scope.wasabiRegions = [
{ name: 'EU Central 1', value: 'https://s3.eu-central-1.wasabisys.com' },
{ name: 'US East 1', value: 'https://s3.us-east-1.wasabisys.com' },
@@ -165,6 +169,7 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien
{ name: 'S3 API Compatible (v4)', value: 's3-v4-compat' },
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' },
{ name: 'SSHFS Mount', value: 'sshfs' },
+ { name: 'Vultr Object Storage', value: 'vultr-objectstorage' },
{ name: 'Wasabi', value: 'wasabi' }
];
@@ -177,7 +182,7 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien
return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat' || provider === 'exoscale-sos'
|| provider === 'digitalocean-spaces' || provider === 'wasabi' || provider === 'scaleway-objectstorage'
|| provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'backblaze-b2'
- || provider === 'ionos-objectstorage';
+ || provider === 'ionos-objectstorage' || provider === 'vultr-objectstorage';
};
$scope.mountlike = function (provider) {
@@ -229,6 +234,9 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien
} else if (backupConfig.provider === 'ionos-objectstorage') {
backupConfig.region = $scope.ionosRegions.find(function (x) { return x.value === $scope.endpoint; }).region;
backupConfig.signatureVersion = 'v4';
+ } else if (backupConfig.provider === 'vultr-objectstorage') {
+ backupConfig.region = $scope.vultrRegions.find(function (x) { return x.value === $scope.endpoint; }).region;
+ backupConfig.signatureVersion = 'v4';
} else if (backupConfig.provider === 'digitalocean-spaces') {
backupConfig.region = 'us-east-1';
}
diff --git a/src/restore.html b/src/restore.html
index 6e6e0fed7..a98a2f943 100644
--- a/src/restore.html
+++ b/src/restore.html
@@ -222,6 +222,11 @@
+
+
+
+
+
diff --git a/src/views/app.html b/src/views/app.html
index 28ef588e2..ab71ee116 100644
--- a/src/views/app.html
+++ b/src/views/app.html
@@ -242,6 +242,11 @@
+
+
+
+
+
diff --git a/src/views/app.js b/src/views/app.js
index 8adcbacb1..9bed9bb9b 100644
--- a/src/views/app.js
+++ b/src/views/app.js
@@ -87,6 +87,10 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
{ name: 'DE', value: 'https://s3-de-central.profitbricks.com', region: 's3-de-central' }, // default
];
+ $scope.vultrRegions = [
+ { name: 'New Jersey', value: 'https://ewr1.vultrobjects.com', region: 'us-east-1' }, // default
+ ];
+
$scope.storageProvider = [
{ name: 'Amazon S3', value: 's3' },
{ name: 'Backblaze B2 (S3 API)', value: 'backblaze-b2' },
@@ -103,6 +107,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
{ name: 'S3 API Compatible (v4)', value: 's3-v4-compat' },
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' },
{ name: 'SSHFS Mount', value: 'sshfs' },
+ { name: 'Vultr Object Storage', value: 'vultr-objectstorage' },
// { name: 'No-op (Only for testing)', value: 'noop' },
{ name: 'Wasabi', value: 'wasabi' }
];
@@ -946,7 +951,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat' ||
provider === 'exoscale-sos' || provider === 'digitalocean-spaces' ||
provider === 'scaleway-objectstorage' || provider === 'wasabi' || provider === 'backblaze-b2' ||
- provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'ionos-objectstorage';
+ provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'ionos-objectstorage' || provider === 'vultr-objectstorage';
};
$scope.mountlike = function (provider) {
@@ -1034,6 +1039,9 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
} else if (backupConfig.provider === 'ionos-objectstorage') {
backupConfig.region = $scope.ionosRegions.find(function (x) { return x.value === $scope.importBackup.endpoint; }).region;
backupConfig.signatureVersion = 'v4';
+ } else if (backupConfig.provider === 'vultr-objectstorage') {
+ backupConfig.region = $scope.vultrRegions.find(function (x) { return x.value === $scope.importBackup.endpoint; }).region;
+ backupConfig.signatureVersion = 'v4';
} else if (backupConfig.provider === 'digitalocean-spaces') {
backupConfig.region = 'us-east-1';
}
diff --git a/src/views/backups.html b/src/views/backups.html
index d44d6e230..6f15edab7 100644
--- a/src/views/backups.html
+++ b/src/views/backups.html
@@ -267,6 +267,11 @@
+
+
+
+
+
diff --git a/src/views/backups.js b/src/views/backups.js
index 978f6b47b..6af358513 100644
--- a/src/views/backups.js
+++ b/src/views/backups.js
@@ -91,6 +91,10 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
{ name: 'DE', value: 'https://s3-de-central.profitbricks.com', region: 's3-de-central' }, // default
];
+ $scope.vultrRegions = [
+ { name: 'New Jersey', value: 'https://ewr1.vultrobjects.com', region: 'us-east-1' }, // default
+ ];
+
$scope.storageProvider = [
{ name: 'Amazon S3', value: 's3' },
{ name: 'Backblaze B2 (S3 API)', value: 'backblaze-b2' },
@@ -109,6 +113,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
{ name: 'S3 API Compatible (v4)', value: 's3-v4-compat' },
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' },
{ name: 'SSHFS Mount', value: 'sshfs' },
+ { name: 'Vultr Object Storage', value: 'vultr-objectstorage' },
{ name: 'Wasabi', value: 'wasabi' },
{ name: 'No-op (Only for testing)', value: 'noop' }
];
@@ -285,7 +290,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat'
|| provider === 'exoscale-sos' || provider === 'digitalocean-spaces'
|| provider === 'scaleway-objectstorage' || provider === 'wasabi' || provider === 'backblaze-b2'
- || provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'ionos-objectstorage';
+ || provider === 'linode-objectstorage' || provider === 'ovh-objectstorage' || provider === 'ionos-objectstorage' || provider === 'vultr-objectstorage';
};
$scope.mountlike = function (provider) {
@@ -573,6 +578,9 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
} else if (backupConfig.provider === 'ionos-objectstorage') {
backupConfig.region = $scope.ionosRegions.find(function (x) { return x.value === $scope.configureBackup.endpoint; }).region;
backupConfig.signatureVersion = 'v4';
+ } else if (backupConfig.provider === 'vultr-objectstorage') {
+ backupConfig.region = $scope.vultrRegions.find(function (x) { return x.value === $scope.configureBackup.endpoint; }).region;
+ backupConfig.signatureVersion = 'v4';
} else if (backupConfig.provider === 'digitalocean-spaces') {
backupConfig.region = 'us-east-1';
}