diff --git a/src/backups.js b/src/backups.js index 1f114e7bf..feb2c6deb 100644 --- a/src/backups.js +++ b/src/backups.js @@ -394,6 +394,12 @@ function createWriteStream(destFile, encryption) { ps.emit('error', new BoxError(BoxError.FS_ERROR, `Write error ${destFile}: ${error.message}`)); }); + stream.on('finish', function () { + debug('createWriteStream: done.'); + // we use a separate event because ps is a through2 stream which emits 'finish' event indicating end of inStream and not write + ps.emit('done'); + }); + if (encryption) { let decrypt = new DecryptStream(encryption); decrypt.on('error', function (error) { @@ -749,7 +755,7 @@ function downloadDir(backupConfig, backupFilePath, dataLayout, progressCallback, progressCallback({ message: `Downloading ${entry.fullPath} to ${destFilePath}` }); - sourceStream.pipe(destStream, { end: true }).on('finish', closeAndRetry); + sourceStream.pipe(destStream, { end: true }).on('done', closeAndRetry); }); }, done); });