🐛 Try fix animated image upload

This commit is contained in:
2025-08-11 02:43:31 +08:00
parent 5bb9bbac73
commit e66130e893

View File

@@ -102,7 +102,9 @@ public class FileService(
private const string TempFilePrefix = "dyn-cloudfile"; private const string TempFilePrefix = "dyn-cloudfile";
private static readonly string[] AnimatedImageTypes = private static readonly string[] AnimatedImageTypes =
["image/gif", "image/apng", "image/webp", "image/avif"]; ["image/gif", "image/apng", "image/avif"];
private static readonly string[] AnimatedImageExtensions =
[".gif", ".apng", ".avif"];
public async Task<CloudFile> ProcessNewFileAsync( public async Task<CloudFile> ProcessNewFileAsync(
Account account, Account account,
@@ -317,11 +319,13 @@ public class FileService(
try try
{ {
logger.LogInformation("Processing file {FileId} in background...", fileId); logger.LogInformation("Processing file {FileId} in background...", fileId);
var fileExtension = Path.GetExtension(originalFilePath);
if (!pool.PolicyConfig.NoOptimization) if (!pool.PolicyConfig.NoOptimization)
switch (contentType.Split('/')[0]) switch (contentType.Split('/')[0])
{ {
case "image" when !AnimatedImageTypes.Contains(contentType): case "image" when !AnimatedImageTypes.Contains(contentType) && !AnimatedImageExtensions.Contains(fileExtension):
newMimeType = "image/webp"; newMimeType = "image/webp";
using (var vipsImage = Image.NewFromFile(originalFilePath)) using (var vipsImage = Image.NewFromFile(originalFilePath))
{ {