From 89fbac36ceaea6066ecfeaef25f6923ea4180bdb Mon Sep 17 00:00:00 2001 From: Pascal Jufer Date: Wed, 15 Feb 2023 22:37:51 +0100 Subject: [PATCH] Catch errors from exif-reader (#17527) --- api/src/services/files.ts | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/api/src/services/files.ts b/api/src/services/files.ts index 47d546a0ec..4fdc394681 100644 --- a/api/src/services/files.ts +++ b/api/src/services/files.ts @@ -161,17 +161,22 @@ export class FilesService extends ItemsService { xmp?: Record; } = {}; if (sharpMetadata.exif) { - const { image, thumbnail, interoperability, ...rest } = exif(sharpMetadata.exif); - if (image) { - fullMetadata.ifd0 = image; + try { + const { image, thumbnail, interoperability, ...rest } = exif(sharpMetadata.exif); + if (image) { + fullMetadata.ifd0 = image; + } + if (thumbnail) { + fullMetadata.ifd1 = thumbnail; + } + if (interoperability) { + fullMetadata.interop = interoperability; + } + Object.assign(fullMetadata, rest); + } catch (err) { + logger.warn(`Couldn't extract EXIF metadata from file`); + logger.warn(err); } - if (thumbnail) { - fullMetadata.ifd1 = thumbnail; - } - if (interoperability) { - fullMetadata.interop = interoperability; - } - Object.assign(fullMetadata, rest); } if (sharpMetadata.icc) { fullMetadata.icc = parseIcc(sharpMetadata.icc);