瀏覽代碼

fix(server): Return the original path for gif playback (#2022)

* fix(server): Return the original path for gifs.

Usually browser is able to play them directly.

* fix(server): Better place for the condition.

* fix(server): gif viewing works properly.
Skyler Mäntysaari 2 年之前
父節點
當前提交
6da50626e1
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      server/apps/immich/src/api-v1/asset/asset.service.ts

+ 5 - 2
server/apps/immich/src/api-v1/asset/asset.service.ts

@@ -279,17 +279,20 @@ export class AssetService {
         /**
          * Serve file viewer on the web
          */
-        if (query.isWeb) {
+        if (query.isWeb && asset.mimeType != 'image/gif') {
           res.set({
             'Content-Type': 'image/jpeg',
           });
+
           if (!asset.resizePath) {
             Logger.error('Error serving IMAGE asset for web', 'ServeFile');
             throw new InternalServerErrorException(`Failed to serve image asset for web`, 'ServeFile');
           }
+
           if (await processETag(asset.resizePath, res, headers)) {
             return;
           }
+
           await fs.access(asset.resizePath, constants.R_OK | constants.W_OK);
           fileReadStream = createReadStream(asset.resizePath);
 
@@ -299,7 +302,7 @@ export class AssetService {
         /**
          * Serve thumbnail image for both web and mobile app
          */
-        if (!query.isThumb && allowOriginalFile) {
+        if ((!query.isThumb && allowOriginalFile) || (query.isWeb && asset.mimeType === 'image/gif')) {
           res.set({
             'Content-Type': asset.mimeType,
           });