fix: Error handling on streams missing error handler on read streams.
Related https://github.com/outline/outline/discussions/5855
This commit is contained in:
@@ -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);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user