aboutsummaryrefslogtreecommitdiff
path: root/src/server/DashUploadUtils.ts
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2023-08-29 00:49:45 -0400
committerbobzel <zzzman@gmail.com>2023-08-29 00:49:45 -0400
commit463a1dff3c08c717ce9b94f92bc12a87ac5344fe (patch)
treedb58fc0df4db0c4c1bb9d30deacff065dcd779b2 /src/server/DashUploadUtils.ts
parent8e143637a34e1766b5993e1c494c8d5a9d881698 (diff)
fixed uploading images to not resize _o image and to not crash if image size is too big for resizer.
Diffstat (limited to 'src/server/DashUploadUtils.ts')
-rw-r--r--src/server/DashUploadUtils.ts19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts
index e5e15ce99..2bafd6b7a 100644
--- a/src/server/DashUploadUtils.ts
+++ b/src/server/DashUploadUtils.ts
@@ -385,7 +385,7 @@ export namespace DashUploadUtils {
const resolved = (filename = `upload_${Utils.GenerateGuid()}.${ext}`);
if (usingAzure()) {
const response = await AzureManager.UploadBase64ImageBlob(resolved, data);
- source = `${AzureManager.BASE_STRING}/${resolved}`;
+ source = `${AzureManager.BASE_STRING}/${resolved}`;
} else {
const error = await new Promise<Error | null>(resolve => {
writeFile(serverPathToFile(Directory.images, resolved), data, 'base64', resolve);
@@ -596,11 +596,20 @@ export namespace DashUploadUtils {
const outputPath = path.resolve(outputDirectory, (writtenFiles[suffix] = InjectSize(outputFileName, suffix)));
await new Promise<void>(async (resolve, reject) => {
const source = streamProvider();
- let readStream: Stream = source instanceof Promise ? await source : source;
+ let readStream = source instanceof Promise ? await source : source;
+ let error = false;
if (resizer) {
- readStream = readStream.pipe(resizer.withMetadata());
+ readStream = readStream.pipe(resizer.withMetadata()).on('error', async args => {
+ error = true;
+ if (error) {
+ const source2 = streamProvider();
+ let readStream2: Stream | undefined;
+ readStream2 = source2 instanceof Promise ? await source2 : source2;
+ readStream2?.pipe(createWriteStream(outputPath)).on('error', resolve).on('close', resolve);
+ }
+ });
}
- readStream.pipe(createWriteStream(outputPath)).on('close', resolve).on('error', reject);
+ !error && readStream?.pipe(createWriteStream(outputPath)).on('error', resolve).on('close', resolve);
});
}
return writtenFiles;
@@ -628,7 +637,7 @@ export namespace DashUploadUtils {
initial = undefined;
}
return {
- resizer: initial,
+ resizer: suffix === '_o' ? undefined : initial,
suffix,
};
}),