adjustments to config and cleanup nuget, remove implicit usings

This commit is contained in:
Stanley Dimant
2022-08-23 11:21:21 +02:00
parent afcb268ccc
commit 2510cce711
23 changed files with 156 additions and 96 deletions

View File

@@ -1,5 +1,15 @@
using MareSynchronosShared.Data;
using MareSynchronosShared.Metrics;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using static MareSynchronosShared.Protos.MetricsService;
namespace MareSynchronosStaticFilesServer;
@@ -17,7 +27,12 @@ public class CleanupService : IHostedService, IDisposable
_metrics = metrics;
_logger = logger;
_services = services;
_configuration = configuration;
_configuration = configuration.GetRequiredSection("MareSynchronos");
metrics.SetGauge(new MareSynchronosShared.Protos.SetGaugeRequest()
{
GaugeName = MetricsAPI.GaugeFilesTotalSize,
Value = Directory.EnumerateFiles(_configuration["CacheDirectory"]).Sum(f => new FileInfo(f).Length)
});
}
public Task StartAsync(CancellationToken cancellationToken)
@@ -65,6 +80,16 @@ public class CleanupService : IHostedService, IDisposable
fi.Delete();
}
}
foreach (var file in Directory.EnumerateFiles(cachedir).ToList())
{
FileInfo fi = new(file);
if (!allFiles.Any(f => f.Hash == fi.Name.ToUpperInvariant()))
{
fi.Delete();
_logger.LogInformation("File not in DB, deleting: {fileName}", fi.FullName);
}
}
}
catch (Exception ex)
{
@@ -78,7 +103,8 @@ public class CleanupService : IHostedService, IDisposable
if (cacheSizeLimitInGiB > 0)
{
_logger.LogInformation("Cleaning up files beyond the cache size limit");
var allLocalFiles = Directory.EnumerateFiles(_configuration["CacheDirectory"]).Select(f => new FileInfo(f)).ToList().OrderBy(f => f.LastAccessTimeUtc).ToList();
var allLocalFiles = Directory.EnumerateFiles(_configuration["CacheDirectory"])
.Select(f => new FileInfo(f)).ToList().OrderBy(f => f.LastAccessTimeUtc).ToList();
var totalCacheSizeInBytes = allLocalFiles.Sum(s => s.Length);
long cacheSizeLimitInBytes = (long)(cacheSizeLimitInGiB * 1024 * 1024 * 1024);
HashSet<string> removedHashes = new();

View File

@@ -3,7 +3,13 @@ using MareSynchronosShared.Data;
using MareSynchronosShared.Metrics;
using MareSynchronosShared.Protos;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Linq;
using System.Security.Policy;
using System.Threading.Tasks;
namespace MareSynchronosStaticFilesServer;
@@ -16,7 +22,7 @@ public class FileService : MareSynchronosShared.Protos.FileService.FileServiceBa
public FileService(MareDbContext mareDbContext, IConfiguration configuration, ILogger<FileService> logger, MetricsService.MetricsServiceClient metricsClient)
{
_basePath = configuration["CacheDirectory"];
_basePath = configuration.GetRequiredSection("MareSynchronos")["CacheDirectory"];
_mareDbContext = mareDbContext;
_logger = logger;
_metricsClient = metricsClient;

View File

@@ -2,8 +2,6 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Http.Connections;
using Microsoft.AspNetCore.SignalR;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;
namespace MareSynchronosStaticFilesServer;

View File

@@ -3,8 +3,13 @@ using MareSynchronosShared.Data;
using MareSynchronosShared.Protos;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using System;
namespace MareSynchronosStaticFilesServer;
@@ -23,13 +28,15 @@ public class Startup
services.AddTransient(_ => Configuration);
var mareSettings = Configuration.GetRequiredSection("MareSynchronos");
services.AddGrpcClient<AuthService.AuthServiceClient>(c =>
{
c.Address = new Uri(Configuration.GetValue<string>("ServiceAddress"));
c.Address = new Uri(mareSettings.GetValue<string>("ServiceAddress"));
});
services.AddGrpcClient<MetricsService.MetricsServiceClient>(c =>
{
c.Address = new Uri(Configuration.GetValue<string>("ServiceAddress"));
c.Address = new Uri(mareSettings.GetValue<string>("ServiceAddress"));
});
services.AddDbContextPool<MareDbContext>(options =>
@@ -39,7 +46,7 @@ public class Startup
builder.MigrationsHistoryTable("_efmigrationshistory", "public");
}).UseSnakeCaseNamingConvention();
options.EnableThreadSafetyChecks(false);
}, Configuration.GetValue("DbContextPoolSize", 1024));
}, mareSettings.GetValue("DbContextPoolSize", 1024));
services.AddAuthentication(options =>
{
@@ -66,7 +73,7 @@ public class Startup
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(Configuration["CacheDirectory"]),
FileProvider = new PhysicalFileProvider(Configuration.GetRequiredSection("MareSynchronos")["CacheDirectory"]),
RequestPath = "/cache",
ServeUnknownFileTypes = true
});

View File

@@ -1,4 +1,7 @@
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Port=5432;Database=mare;Username=postgres"
},
"Logging": {
"LogLevel": {
"Default": "Information",
@@ -12,9 +15,11 @@
}
}
},
"CacheSizeHardLimitInGiB": -1,
"UnusedFileRetentionPeriodInDays": 7,
"AllowedHosts": "*",
"CacheDirectory": "G:\\ServerTest", // do not delete this key and set it to the path where the files will be stored
"ServiceAddress": "http://localhost:5002"
"MareSynchronos": {
"CacheSizeHardLimitInGiB": -1,
"UnusedFileRetentionPeriodInDays": 7,
"CacheDirectory": "G:\\ServerTest", // do not delete this key and set it to the path where the files will be stored
"ServiceAddress": "http://localhost:5002"
},
"AllowedHosts": "*"
}