Files
ClubPenguinServer/MareSynchronosServer/MareSynchronosStaticFilesServer/Controllers/ServerFilesController.cs
rootdarkarchon ca16b08a2f Server rework for API change and paradigm shift (#23)
* start with group permissions implementation

* some minor refactoring

* adjust hub for api changes

* fixes and database migration

* fixes sending online/offline message to clients stuff

* remove admin stuff from server

* fixes get server permissions

* send group pair info to client on joining a group

* send online only on sending connection dto

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
2023-01-29 15:15:02 +01:00

31 lines
966 B
C#

using MareSynchronos.API.Routes;
using MareSynchronosShared.Utils;
using MareSynchronosStaticFilesServer.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace MareSynchronosStaticFilesServer.Controllers;
[Route(MareFiles.ServerFiles)]
public class ServerFilesController : ControllerBase
{
private readonly CachedFileProvider _cachedFileProvider;
public ServerFilesController(ILogger<ServerFilesController> logger, CachedFileProvider cachedFileProvider) : base(logger)
{
_cachedFileProvider = cachedFileProvider;
}
[HttpGet(MareFiles.ServerFiles_Get + "/{fileId}")]
[Authorize(Policy = "Internal")]
public IActionResult GetFile(string fileId)
{
_logger.LogInformation($"GetFile:{MareUser}:{fileId}");
var fs = _cachedFileProvider.GetLocalFileStream(fileId);
if (fs == null) return NotFound();
return File(fs, "application/octet-stream");
}
}