forked from Kieran/void.cat
Send logs to Seq
This commit is contained in:
parent
be4bebc97f
commit
8e243e0d7f
@ -1,4 +1,6 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||
using Newtonsoft.Json;
|
||||
using VoidCat.Model;
|
||||
using VoidCat.Services;
|
||||
@ -17,6 +19,7 @@ namespace VoidCat.Controllers
|
||||
|
||||
[HttpPost]
|
||||
[DisableRequestSizeLimit]
|
||||
[DisableFormValueModelBinding]
|
||||
public Task<InternalVoidFile> UploadFile()
|
||||
{
|
||||
return Request.HasFormContentType ?
|
||||
@ -48,4 +51,20 @@ namespace VoidCat.Controllers
|
||||
|
||||
public record UpdateFileInfoRequest([JsonConverter(typeof(Base58GuidConverter))] Guid EditSecret, VoidFileMeta Metadata);
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
|
||||
public class DisableFormValueModelBindingAttribute : Attribute, IResourceFilter
|
||||
{
|
||||
public void OnResourceExecuting(ResourceExecutingContext context)
|
||||
{
|
||||
var factories = context.ValueProviderFactories;
|
||||
factories.RemoveType<FormValueProviderFactory>();
|
||||
factories.RemoveType<FormFileValueProviderFactory>();
|
||||
factories.RemoveType<JQueryFormValueProviderFactory>();
|
||||
}
|
||||
|
||||
public void OnResourceExecuted(ResourceExecutedContext context)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,5 +3,7 @@
|
||||
public class VoidSettings
|
||||
{
|
||||
public string DataDirectory { get; init; } = "./data";
|
||||
public Uri? SeqHost { get; init; }
|
||||
public string? SeqApiKey { get; init; }
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,18 @@ using VoidCat.Model;
|
||||
using VoidCat.Services;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
var services = builder.Services;
|
||||
|
||||
var configuration = builder.Configuration;
|
||||
var voidSettings = configuration.GetSection("Settings").Get<VoidSettings>();
|
||||
services.AddSingleton(voidSettings);
|
||||
|
||||
// config logging
|
||||
if (voidSettings?.SeqHost != default)
|
||||
{
|
||||
builder.Logging.AddSeq(voidSettings.SeqHost.ToString(), voidSettings.SeqApiKey);
|
||||
}
|
||||
|
||||
services.AddRouting();
|
||||
services.AddControllers().AddNewtonsoftJson();
|
||||
|
||||
@ -12,10 +22,6 @@ services.AddMemoryCache();
|
||||
services.AddScoped<IFileStorage, LocalDiskFileIngressFactory>();
|
||||
services.AddScoped<IStatsCollector, InMemoryStatsCollector>();
|
||||
|
||||
var configuration = builder.Configuration;
|
||||
var voidSettings = configuration.GetSection("Settings").Get<VoidSettings>();
|
||||
services.AddSingleton(voidSettings);
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
app.UseStaticFiles();
|
||||
|
@ -14,6 +14,7 @@
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.1" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.14.0" />
|
||||
<PackageReference Include="NBitcoin" Version="6.0.19" />
|
||||
<PackageReference Include="Seq.Extensions.Logging" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!-- Don't publish the SPA source files, but do show them in the project files list -->
|
||||
|
@ -24,7 +24,8 @@ export function FilePreview(props) {
|
||||
}
|
||||
case "video/mp4":
|
||||
case "video/matroksa":
|
||||
case "video/x-matroska": {
|
||||
case "video/x-matroska":
|
||||
case "video/webm": {
|
||||
return <video src={link} controls />;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user