diff --git a/api/src/services/files.ts b/api/src/services/files.ts index 59ec4545e332e..fe374530ed8b0 100644 --- a/api/src/services/files.ts +++ b/api/src/services/files.ts @@ -75,14 +75,19 @@ export class FilesService extends ItemsService { if (['image/jpeg', 'image/png', 'image/webp', 'image/gif', 'image/tiff'].includes(payload.type)) { const buffer = await storage.disk(data.storage).getBuffer(payload.filename_disk); - const meta = await sharp(buffer.content, {}).metadata(); - - if (meta.orientation && meta.orientation >= 5) { - payload.height = meta.width; - payload.width = meta.height; - } else { - payload.width = meta.width; - payload.height = meta.height; + try { + const meta = await sharp(buffer.content, {}).metadata(); + + if (meta.orientation && meta.orientation >= 5) { + payload.height = meta.width; + payload.width = meta.height; + } else { + payload.width = meta.width; + payload.height = meta.height; + } + } catch (err: any) { + logger.warn(`Couldn't extract sharp metadata from file`); + logger.warn(err); } payload.metadata = {}; @@ -107,7 +112,7 @@ export class FilesService extends ItemsService { payload.tags = payload.metadata.iptc.Keywords; } } catch (err: any) { - logger.warn(`Couldn't extract metadata from file`); + logger.warn(`Couldn't extract EXIF metadata from file`); logger.warn(err); } }