From 7fa977f0023de24c756e5ee4900a21f40ea5539c Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Tue, 12 Jan 2021 11:10:17 -0500 Subject: [PATCH] Warn instead of crash on failed exif/iptc/icc extraction Fixes #3535 --- api/src/services/files.ts | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/api/src/services/files.ts b/api/src/services/files.ts index a713a3b6b4..2b3d947b34 100644 --- a/api/src/services/files.ts +++ b/api/src/services/files.ts @@ -12,6 +12,7 @@ import { toArray } from '../utils/to-array'; import { extension } from 'mime-types'; import path from 'path'; import env from '../env'; +import logger from '../logger'; export class FilesService extends ItemsService { constructor(options: AbstractServiceOptions) { @@ -57,18 +58,32 @@ export class FilesService extends ItemsService { payload.metadata = {}; if (meta.icc) { - payload.metadata.icc = parseICC(meta.icc); + try { + payload.metadata.icc = parseICC(meta.icc); + } catch (err) { + logger.warn(`Couldn't extract ICC information from file`); + logger.warn(err); + } } if (meta.exif) { - payload.metadata.exif = parseEXIF(meta.exif); + try { + payload.metadata.exif = parseEXIF(meta.exif); + } catch (err) { + logger.warn(`Couldn't extract EXIF information from file`); + logger.warn(err); + } } if (meta.iptc) { - payload.metadata.iptc = parseIPTC(meta.iptc); - - payload.title = payload.title || payload.metadata.iptc.headline; - payload.description = payload.description || payload.metadata.iptc.caption; + try { + payload.metadata.iptc = parseIPTC(meta.iptc); + payload.title = payload.title || payload.metadata.iptc.headline; + payload.description = payload.description || payload.metadata.iptc.caption; + } catch (err) { + logger.warn(`Couldn't extract IPTC information from file`); + logger.warn(err); + } } });