ソースを参照

Simplify file returns

crobibero 4 年 前
コミット
ec2a5e4fb0

+ 2 - 3
Jellyfin.Api/Controllers/DashboardController.cs

@@ -214,9 +214,8 @@ namespace Jellyfin.Api.Controllers
             {
             {
                 return Redirect("index.html?start=wizard#!/wizardstart.html");
                 return Redirect("index.html?start=wizard#!/wizardstart.html");
             }
             }
-
-            var stream = new FileStream(_resourceFileManager.GetResourcePath(basePath, path), FileMode.Open, FileAccess.Read);
-            return File(stream, MimeTypes.GetMimeType(path));
+            
+            return PhysicalFile(_resourceFileManager.GetResourcePath(basePath, path), MimeTypes.GetMimeType(path));
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 3 - 3
Jellyfin.Api/Controllers/ItemLookupController.cs

@@ -264,8 +264,7 @@ namespace Jellyfin.Api.Controllers
                 var contentPath = await System.IO.File.ReadAllTextAsync(pointerCachePath).ConfigureAwait(false);
                 var contentPath = await System.IO.File.ReadAllTextAsync(pointerCachePath).ConfigureAwait(false);
                 if (System.IO.File.Exists(contentPath))
                 if (System.IO.File.Exists(contentPath))
                 {
                 {
-                    await using var fileStreamExisting = System.IO.File.OpenRead(pointerCachePath);
-                    return new FileStreamResult(fileStreamExisting, MediaTypeNames.Application.Octet);
+                    return PhysicalFile(contentPath, MimeTypes.GetMimeType(contentPath));
                 }
                 }
             }
             }
             catch (FileNotFoundException)
             catch (FileNotFoundException)
@@ -278,7 +277,8 @@ namespace Jellyfin.Api.Controllers
             }
             }
 
 
             await DownloadImage(providerName, imageUrl, urlHash, pointerCachePath).ConfigureAwait(false);
             await DownloadImage(providerName, imageUrl, urlHash, pointerCachePath).ConfigureAwait(false);
-            return PhysicalFile(pointerCachePath, MimeTypes.GetMimeType(pointerCachePath));
+            var updatedContentPath = await System.IO.File.ReadAllTextAsync(pointerCachePath).ConfigureAwait(false);
+            return PhysicalFile(updatedContentPath, MimeTypes.GetMimeType(updatedContentPath));
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 1 - 2
Jellyfin.Api/Controllers/LibraryController.cs

@@ -114,8 +114,7 @@ namespace Jellyfin.Api.Controllers
                 return NotFound();
                 return NotFound();
             }
             }
 
 
-            using var fileStream = new FileStream(item.Path, FileMode.Open, FileAccess.Read);
-            return File(fileStream, MimeTypes.GetMimeType(item.Path));
+            return PhysicalFile(item.Path, MimeTypes.GetMimeType(item.Path));
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 1 - 2
Jellyfin.Api/Controllers/SubtitleController.cs

@@ -214,8 +214,7 @@ namespace Jellyfin.Api.Controllers
                 var subtitleStream = mediaSource.MediaStreams
                 var subtitleStream = mediaSource.MediaStreams
                     .First(i => i.Type == MediaStreamType.Subtitle && i.Index == index);
                     .First(i => i.Type == MediaStreamType.Subtitle && i.Index == index);
 
 
-                FileStream stream = new FileStream(subtitleStream.Path, FileMode.Open, FileAccess.Read);
-                return File(stream, MimeTypes.GetMimeType(subtitleStream.Path));
+                return PhysicalFile(subtitleStream.Path, MimeTypes.GetMimeType(subtitleStream.Path));
             }
             }
 
 
             if (string.Equals(format, "vtt", StringComparison.OrdinalIgnoreCase) && addVttTimeMap)
             if (string.Equals(format, "vtt", StringComparison.OrdinalIgnoreCase) && addVttTimeMap)

+ 1 - 0
Jellyfin.Api/Controllers/VideoAttachmentsController.cs

@@ -1,5 +1,6 @@
 using System;
 using System;
 using System.ComponentModel.DataAnnotations;
 using System.ComponentModel.DataAnnotations;
+using System.IO;
 using System.Net.Mime;
 using System.Net.Mime;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;