[backend/drive] Fix duplicated dots in file extensions in some circumstances

This commit is contained in:
Laura Hausmann 2024-08-08 17:48:34 +02:00
parent aac4be5893
commit 7b3e9bbbca
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
2 changed files with 4 additions and 4 deletions

View file

@ -337,7 +337,7 @@ public class DriveService(
Stream input, DriveFileCreationRequest request Stream input, DriveFileCreationRequest request
) )
{ {
var accessKey = GenerateAccessKey(extension: Path.GetExtension(request.Filename)); var accessKey = GenerateAccessKey(extension: Path.GetExtension(request.Filename).TrimStart('.'));
var url = await StoreFileVersion(input, accessKey, request.Filename, request.MimeType); var url = await StoreFileVersion(input, accessKey, request.Filename, request.MimeType);
return (Stub, accessKey, url); return (Stub, accessKey, url);
} }
@ -442,7 +442,7 @@ public class DriveService(
{ {
if (skipImageProcessing) if (skipImageProcessing)
{ {
var origFormat = new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType); var origFormat = new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType);
return [new ImageVersion(KeyEnum.Original, origFormat)]; return [new ImageVersion(KeyEnum.Original, origFormat)];
} }
@ -469,7 +469,7 @@ public class DriveService(
return config.Format switch return config.Format switch
{ {
ImageFormatEnum.None => null, ImageFormatEnum.None => null,
ImageFormatEnum.Keep => new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType), ImageFormatEnum.Keep => new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType),
ImageFormatEnum.Webp => new ImageFormat.Webp(config.WebpCompressionMode, GetQualityFactor(), GetTargetRes()), ImageFormatEnum.Webp => new ImageFormat.Webp(config.WebpCompressionMode, GetQualityFactor(), GetTargetRes()),
ImageFormatEnum.Avif => new ImageFormat.Avif(config.AvifCompressionMode, GetQualityFactor(), config.AvifBitDepth, GetTargetRes()), ImageFormatEnum.Avif => new ImageFormat.Avif(config.AvifCompressionMode, GetQualityFactor(), config.AvifBitDepth, GetTargetRes()),
ImageFormatEnum.Jxl => new ImageFormat.Jxl(config.JxlCompressionMode, GetQualityFactor(), config.JxlEffort, GetTargetRes()), ImageFormatEnum.Jxl => new ImageFormat.Jxl(config.JxlCompressionMode, GetQualityFactor(), config.JxlEffort, GetTargetRes()),

View file

@ -147,7 +147,7 @@ public class ImageProcessor
[SetsRequiredMembers] [SetsRequiredMembers]
public ProcessedImage(IImageInfo info, Stream original, DriveFileCreationRequest request) : this(info) public ProcessedImage(IImageInfo info, Stream original, DriveFileCreationRequest request) : this(info)
{ {
var format = new ImageFormat.Keep(Path.GetExtension(request.Filename), request.MimeType); var format = new ImageFormat.Keep(Path.GetExtension(request.Filename).TrimStart('.'), request.MimeType);
RequestedFormats = new Dictionary<ImageVersion, Func<Task<Stream>>?> RequestedFormats = new Dictionary<ImageVersion, Func<Task<Stream>>?>
{ {
[new ImageVersion(KeyEnum.Original, format)] = () => Task.FromResult(original) [new ImageVersion(KeyEnum.Original, format)] = () => Task.FromResult(original)