Browse Source

fix(server): force best effort to decode thumbnail image (#847)

Alex 2 years ago
parent
commit
2c189d5c78
1 changed files with 6 additions and 2 deletions
  1. 6 2
      server/apps/microservices/src/processors/thumbnail.processor.ts

+ 6 - 2
server/apps/microservices/src/processors/thumbnail.processor.ts

@@ -65,7 +65,11 @@ export class ThumbnailGeneratorProcessor {
 
     if (asset.type == AssetType.IMAGE) {
       try {
-        await sharp(asset.originalPath).resize(1440, 2560, { fit: 'inside' }).jpeg().rotate().toFile(jpegThumbnailPath);
+        await sharp(asset.originalPath, { failOnError: false })
+          .resize(1440, 2560, { fit: 'inside' })
+          .jpeg()
+          .rotate()
+          .toFile(jpegThumbnailPath);
         await this.assetRepository.update({ id: asset.id }, { resizePath: jpegThumbnailPath });
       } catch (error) {
         Logger.error('Failed to generate jpeg thumbnail for asset: ' + asset.id);
@@ -135,7 +139,7 @@ export class ThumbnailGeneratorProcessor {
     const webpPath = asset.resizePath.replace('jpeg', 'webp');
 
     try {
-      await sharp(asset.resizePath).resize(250).webp().rotate().toFile(webpPath);
+      await sharp(asset.resizePath, { failOnError: false }).resize(250).webp().rotate().toFile(webpPath);
       await this.assetRepository.update({ id: asset.id }, { webpPath: webpPath });
     } catch (error) {
       Logger.error('Failed to generate webp thumbnail for asset: ' + asset.id);