🐛 More file endpoint override options
This commit is contained in:
		@@ -17,10 +17,15 @@ public class FileController(
 | 
			
		||||
) : ControllerBase
 | 
			
		||||
{
 | 
			
		||||
    [HttpGet("{id}")]
 | 
			
		||||
    public async Task<ActionResult> OpenFile(string id, [FromQuery] bool original = false)
 | 
			
		||||
    public async Task<ActionResult> OpenFile(
 | 
			
		||||
        string id,
 | 
			
		||||
        [FromQuery] bool download = false,
 | 
			
		||||
        [FromQuery] bool original = false,
 | 
			
		||||
        [FromQuery] string? overrideMimeType = null
 | 
			
		||||
    )
 | 
			
		||||
    {
 | 
			
		||||
        // Support the file extension for client side data recognize
 | 
			
		||||
        String? fileExtension = null;
 | 
			
		||||
        string? fileExtension = null;
 | 
			
		||||
        if (id.Contains("."))
 | 
			
		||||
        {
 | 
			
		||||
            var splitedId = id.Split('.');
 | 
			
		||||
@@ -76,11 +81,20 @@ public class FileController(
 | 
			
		||||
                if (MimeTypes.TryGetMimeType(fileExtension, out var mimeType))
 | 
			
		||||
                    headers.Add("Response-Content-Type", mimeType);
 | 
			
		||||
            }
 | 
			
		||||
            else if (overrideMimeType is not null)
 | 
			
		||||
            {
 | 
			
		||||
                headers.Add("Response-Content-Type", overrideMimeType);
 | 
			
		||||
            }
 | 
			
		||||
            else if (file.MimeType is not null && !file.MimeType!.EndsWith("unknown"))
 | 
			
		||||
            {
 | 
			
		||||
                headers.Add("Response-Content-Type", file.MimeType);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (download)
 | 
			
		||||
            {
 | 
			
		||||
                headers.Add("Response-Content-Disposition", $"attachment; filename=\"{file.Name}\"");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var bucket = dest.Bucket;
 | 
			
		||||
            var openUrl = await client.PresignedGetObjectAsync(
 | 
			
		||||
                new PresignedGetObjectArgs()
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABlurHashEncoder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fb87f853683828cb934127af9a42b22cf516412af1e61ae2ff4935ae82aff_003FBlurHashEncoder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABodyBuilder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fc5c8aba04a29d49c65d772c9ffcd93ac7eb38ccbb49a5f506518a0b9bdcaa75_003FBodyBuilder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABucketArgs_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fd515fb889657fcdcace3fed90735057b458ff9e0bb60bded7c8fe8b3a4673c_003FBucketArgs_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ABucketArgs_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fd515fb889657fcdcace3fed90735057b458ff9e0bb60bded7c8fe8b3a4673c_003FBucketArgs_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AChapterData_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ffef366b36a224d469ff150d30f9a866d23c00_003Fe6_003F64a6c0f7_003FChapterData_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClaim_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa7fdc52b6e574ae7b9822133be91162a15800_003Ff7_003Feebffd8d_003FClaim_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AConnectionMultiplexer_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F2ed0e2f073b1d77b98dadb822da09ee8a9dfb91bf29bf2bbaecb8750d7e74cc9_003FConnectionMultiplexer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user