From f62e56456b1a7190081bb8288273f58dcfc774a9 Mon Sep 17 00:00:00 2001 From: Alex Tran Date: Wed, 10 Dec 2025 15:49:01 +0000 Subject: [PATCH] fix: metadata extraction failed on high concurrency --- server/src/repositories/metadata.repository.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/repositories/metadata.repository.ts b/server/src/repositories/metadata.repository.ts index 32882de0e0..fd4cda4cad 100644 --- a/server/src/repositories/metadata.repository.ts +++ b/server/src/repositories/metadata.repository.ts @@ -2,7 +2,6 @@ import { Injectable } from '@nestjs/common'; import { BinaryField, DefaultReadTaskOptions, ExifTool, Tags } from 'exiftool-vendored'; import geotz from 'geo-tz'; import { LoggingRepository } from 'src/repositories/logging.repository'; -import { mimeTypes } from 'src/utils/mime-types'; interface ExifDuration { Value: number; @@ -82,6 +81,7 @@ export class MetadataRepository { inferTimezoneFromDatestamps: true, inferTimezoneFromTimeStamp: true, useMWG: true, + taskTimeoutMillis: 1 * 60 * 1000, numericTags: [...DefaultReadTaskOptions.numericTags, 'FocalLength', 'FileSize'], /* eslint unicorn/no-array-callback-reference: off, unicorn/no-array-method-this-argument: off */ geoTz: (lat, lon) => geotz.find(lat, lon)[0], @@ -104,8 +104,7 @@ export class MetadataRepository { } readTags(path: string): Promise { - const args = mimeTypes.isVideo(path) ? ['-ee'] : []; - return this.exiftool.read(path, args).catch((error) => { + return this.exiftool.read(path).catch((error) => { this.logger.warn(`Error reading exif data (${path}): ${error}\n${error?.stack}`); return {}; }) as Promise;