use the backupdb config to determine bucket and prefix
This commit is contained in:
+14
-10
@@ -164,19 +164,23 @@ function getRestoreUrl(backupId, callback) {
|
|||||||
settings.getBackupConfig(function (error, backupConfig) {
|
settings.getBackupConfig(function (error, backupConfig) {
|
||||||
if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error));
|
if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error));
|
||||||
|
|
||||||
api(backupConfig.provider).getSignedDownloadUrl(backupConfig, backupId, function (error, result) {
|
backupdb.get(backupId, function (error, backupInfo) {
|
||||||
if (error) return callback(error);
|
if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error));
|
||||||
|
|
||||||
var obj = {
|
api(backupInfo.provider).getSignedDownloadUrl(backupConfig, backupInfo, function (error, result) {
|
||||||
id: backupId,
|
if (error) return callback(error);
|
||||||
url: result.url,
|
|
||||||
sessionToken: result.sessionToken,
|
|
||||||
backupKey: backupConfig.key
|
|
||||||
};
|
|
||||||
|
|
||||||
debug('getRestoreUrl: id:%s url:%s sessionToken:%s backupKey:%s', obj.id, obj.url, obj.sessionToken, obj.backupKey);
|
var obj = {
|
||||||
|
id: backupId,
|
||||||
|
url: result.url,
|
||||||
|
sessionToken: result.sessionToken,
|
||||||
|
backupKey: backupInfo.key
|
||||||
|
};
|
||||||
|
|
||||||
callback(null, obj);
|
debug('getRestoreUrl: id:%s url:%s sessionToken:%s backupKey:%s', obj.id, obj.url, obj.sessionToken, obj.backupKey);
|
||||||
|
|
||||||
|
callback(null, obj);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-7
@@ -1,5 +1,3 @@
|
|||||||
/* jslint node:true */
|
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
exports = module.exports = {
|
exports = module.exports = {
|
||||||
@@ -81,12 +79,12 @@ function getSignedUploadUrl(backupConfig, filename, callback) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSignedDownloadUrl(backupConfig, filename, callback) {
|
function getSignedDownloadUrl(backupConfig, info, callback) {
|
||||||
assert.strictEqual(typeof backupConfig, 'object');
|
assert.strictEqual(typeof backupConfig, 'object');
|
||||||
assert.strictEqual(typeof filename, 'string');
|
assert.strictEqual(typeof info, 'object');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
if (!backupConfig.bucket || !backupConfig.prefix) return new Error('Invalid configuration'); // prevent error in s3
|
if (!info.bucket || !info.prefix) return new Error('Invalid configuration'); // prevent error in s3
|
||||||
|
|
||||||
getBackupCredentials(backupConfig, function (error, credentials) {
|
getBackupCredentials(backupConfig, function (error, credentials) {
|
||||||
if (error) return callback(error);
|
if (error) return callback(error);
|
||||||
@@ -94,8 +92,8 @@ function getSignedDownloadUrl(backupConfig, filename, callback) {
|
|||||||
var s3 = new AWS.S3(credentials);
|
var s3 = new AWS.S3(credentials);
|
||||||
|
|
||||||
var params = {
|
var params = {
|
||||||
Bucket: backupConfig.bucket,
|
Bucket: info.bucket,
|
||||||
Key: backupConfig.prefix + '/' + filename,
|
Key: info.prefix + '/' + info.filename,
|
||||||
Expires: 60 * 30 /* 30 minutes */
|
Expires: 60 * 30 /* 30 minutes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+4
-6
@@ -1,5 +1,3 @@
|
|||||||
/* jslint node:true */
|
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
exports = module.exports = {
|
exports = module.exports = {
|
||||||
@@ -87,9 +85,9 @@ function getSignedUploadUrl(backupConfig, filename, callback) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSignedDownloadUrl(backupConfig, filename, callback) {
|
function getSignedDownloadUrl(backupConfig, info, callback) {
|
||||||
assert.strictEqual(typeof backupConfig, 'object');
|
assert.strictEqual(typeof backupConfig, 'object');
|
||||||
assert.strictEqual(typeof filename, 'string');
|
assert.strictEqual(typeof info, 'object');
|
||||||
assert.strictEqual(typeof callback, 'function');
|
assert.strictEqual(typeof callback, 'function');
|
||||||
|
|
||||||
getBackupCredentials(backupConfig, function (error, credentials) {
|
getBackupCredentials(backupConfig, function (error, credentials) {
|
||||||
@@ -98,8 +96,8 @@ function getSignedDownloadUrl(backupConfig, filename, callback) {
|
|||||||
var s3 = new AWS.S3(credentials);
|
var s3 = new AWS.S3(credentials);
|
||||||
|
|
||||||
var params = {
|
var params = {
|
||||||
Bucket: backupConfig.bucket,
|
Bucket: info.bucket,
|
||||||
Key: backupConfig.prefix + '/' + filename,
|
Key: info.prefix + '/' + info.filename,
|
||||||
Expires: 60 * 30 /* 30 minutes */
|
Expires: 60 * 30 /* 30 minutes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user