using LightlessSync.API.Routes; using LightlessSyncStaticFilesServer.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace LightlessSyncStaticFilesServer.Controllers; [Route(LightlessFiles.Distribution)] public class DistributionController : ControllerBase { private readonly CachedFileProvider _cachedFileProvider; public DistributionController(ILogger logger, CachedFileProvider cachedFileProvider) : base(logger) { _cachedFileProvider = cachedFileProvider; } [HttpGet(LightlessFiles.Distribution_Get)] [Authorize(Policy = "Internal")] public async Task GetFile(string file) { _logger.LogInformation($"GetFile:{LightlessUser}:{file}"); var fs = await _cachedFileProvider.DownloadAndGetLocalFileInfo(file); if (fs == null) return NotFound(); return PhysicalFile(fs.FullName, "application/octet-stream"); } }