fix: Error handling on streams missing error handler on read streams.

Related https://github.com/outline/outline/discussions/5855
This commit is contained in:
Tom Moor
2023-09-23 18:08:36 -04:00
parent 65d3c8309e
commit 6aec085942
2 changed files with 22 additions and 12 deletions

View File

@@ -70,15 +70,18 @@ export default class LocalStorage extends BaseStorage {
const destPath = path.join(env.FILE_STORAGE_LOCAL_ROOT_DIR, key); const destPath = path.join(env.FILE_STORAGE_LOCAL_ROOT_DIR, key);
closeSync(openSync(destPath, "w")); closeSync(openSync(destPath, "w"));
const dest = createWriteStream(destPath);
src.pipe(dest);
return new Promise<string>((resolve, reject) => { return new Promise<string>((resolve, reject) => {
src.once("end", () => resolve(this.getUrlForKey(key))); const dest = createWriteStream(destPath)
src.once("err", (err) => { .on("error", reject)
dest.end(); .on("finish", () => resolve(this.getUrlForKey(key)));
reject(err);
}); src
.on("error", (err) => {
dest.end();
reject(err);
})
.pipe(dest);
}); });
}; };

View File

@@ -115,6 +115,14 @@ export default class ZipHelper {
currentFile: null, currentFile: null,
}; };
const dest = fs
.createWriteStream(path)
.on("finish", () => {
Logger.debug("utils", "Writing zip complete", { path });
return resolve(path);
})
.on("error", reject);
zip zip
.generateNodeStream( .generateNodeStream(
{ {
@@ -141,12 +149,11 @@ export default class ZipHelper {
} }
} }
) )
.pipe(fs.createWriteStream(path)) .on("error", (err) => {
.on("finish", () => { dest.end();
Logger.debug("utils", "Writing zip complete", { path }); reject(err);
return resolve(path);
}) })
.on("error", reject); .pipe(dest);
} }
); );
}); });