diff --git a/src/backups.js b/src/backups.js index 057aba1ba..a843419e9 100644 --- a/src/backups.js +++ b/src/backups.js @@ -164,19 +164,23 @@ function getRestoreUrl(backupId, callback) { settings.getBackupConfig(function (error, backupConfig) { if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error)); - api(backupConfig.provider).getSignedDownloadUrl(backupConfig, backupId, function (error, result) { - if (error) return callback(error); + backupdb.get(backupId, function (error, backupInfo) { + if (error) return callback(new BackupsError(BackupsError.INTERNAL_ERROR, error)); - var obj = { - id: backupId, - url: result.url, - sessionToken: result.sessionToken, - backupKey: backupConfig.key - }; + api(backupInfo.provider).getSignedDownloadUrl(backupConfig, backupInfo, function (error, result) { + if (error) return callback(error); - 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); + }); }); }); } diff --git a/src/storage/caas.js b/src/storage/caas.js index 901db89f0..74e812627 100644 --- a/src/storage/caas.js +++ b/src/storage/caas.js @@ -1,5 +1,3 @@ -/* jslint node:true */ - 'use strict'; 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 filename, 'string'); + assert.strictEqual(typeof info, 'object'); 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) { if (error) return callback(error); @@ -94,8 +92,8 @@ function getSignedDownloadUrl(backupConfig, filename, callback) { var s3 = new AWS.S3(credentials); var params = { - Bucket: backupConfig.bucket, - Key: backupConfig.prefix + '/' + filename, + Bucket: info.bucket, + Key: info.prefix + '/' + info.filename, Expires: 60 * 30 /* 30 minutes */ }; diff --git a/src/storage/s3.js b/src/storage/s3.js index 04fb8a900..b7498164e 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -1,5 +1,3 @@ -/* jslint node:true */ - 'use strict'; 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 filename, 'string'); + assert.strictEqual(typeof info, 'object'); assert.strictEqual(typeof callback, 'function'); getBackupCredentials(backupConfig, function (error, credentials) { @@ -98,8 +96,8 @@ function getSignedDownloadUrl(backupConfig, filename, callback) { var s3 = new AWS.S3(credentials); var params = { - Bucket: backupConfig.bucket, - Key: backupConfig.prefix + '/' + filename, + Bucket: info.bucket, + Key: info.prefix + '/' + info.filename, Expires: 60 * 30 /* 30 minutes */ };