From 05c53058da24d39ff0995e879b6500bb8c5b2afa Mon Sep 17 00:00:00 2001 From: XShine555 Date: Thu, 28 May 2026 23:49:09 +0200 Subject: [PATCH] Fixes and config --- WebApi/AppSettings.Development.json | 29 ++++-- WebApi/AppSettings.json | 88 +++++++++++-------- WebApi/Extensions/ResultHttpExtensions.cs | 1 + .../Extensions/ServiceCollectionExtensions.cs | 7 +- WebApi/WebApi.csproj | 5 +- 5 files changed, 84 insertions(+), 46 deletions(-) diff --git a/WebApi/AppSettings.Development.json b/WebApi/AppSettings.Development.json index 16ecf29..db29d78 100644 --- a/WebApi/AppSettings.Development.json +++ b/WebApi/AppSettings.Development.json @@ -5,13 +5,30 @@ "Microsoft.AspNetCore": "Warning" } }, - "ConnectionStrings": { - "Default": "" + "Database": { + "ConnectionString": "Host=localhost;Port=59000;Database=musify_db;Username=postgres;Password=postgres" }, - "Storage": { - "BucketName": "", + "MassTransit": { + "Address": "rabbitmq://127.0.0.1:5672", + "Username": "guest", + "Password": "guest" + }, + "InfrastructureStorage": { + "Address": "http://localhost:8333", + "AccessKey": "admin_access_key", + "SecretAccessKey": "admin_secret_key", + "ForcePathStyle": true, + "UseHttp": true + }, + "ApplicationStorage": { + "Bucket": "webapi-storage" + }, + "OpenTelemetry": { + "OtlpEndpoint": "http://localhost:4317" + }, + "Workers": { "Routes": { - "Uploads": "" + "TemporaryFilesDirectory": "D:\\tempsFilesDev" } } -} \ No newline at end of file +} diff --git a/WebApi/AppSettings.json b/WebApi/AppSettings.json index 721a2b5..f80dc37 100644 --- a/WebApi/AppSettings.json +++ b/WebApi/AppSettings.json @@ -6,11 +6,30 @@ } }, "AllowedHosts": "*", - "ConnectionStrings": { - "Default": "" + "Database": { + "ConnectionString": "" }, - "PlayListConfiguration": { + "MassTransit": { + "Address": "", + "Username": "", + "Password": "" + }, + "InfrastructureStorage": { + "Address": "", + "AccessKey": "", + "SecretAccessKey": "", + "ForcePathStyle": false, + "UseHttp": false + }, + "ApplicationStorage": { + "Bucket": "" + }, + "OpenTelemetry": { + "OtlpEndpoint": "" + }, + "PlayList": { "Routes": { + "UploadsFolder": "uploads", "ParentFolders": "PlayLists", "OriginalPicturesFolder": "OriginalPictures", "SmallPicturesFolder": "SmallPictures", @@ -30,35 +49,9 @@ "LargePictureHeight": 512 } }, - "Keycloak": { - "Address": "1", - "Realm": "1", - "Username": "1", - "Password": "1" - }, - "Database": { - "ConnectionString": "Host=localhost;Port=59000;Database=musify_db;Username=postgres;Password=postgres" - }, - "ApplicationStorage": { - "BucketName": "webapi-storage" - }, - "InfrastructureStorage": { - "Address": "http://localhost:8333", - "AccessKey": "admin_access_key", - "SecretAccessKey": "admin_secret_key", - "ForcePathStyle": true, - "UseHttp": true - }, - "Messaging": { - "Address": "rabbitmq://127.0.0.1:5672", - "Username": "guest", - "Password": "guest" - }, - "OpenTelemetry": { - "OtlpEndpoint": "http://localhost:4317" - }, - "TrackConfiguration": { + "Track": { "Routes": { + "UploadsFolder": "uploads", "ParentFolder": "Tracks", "OriginalPicturesFolder": "OriginalPictures", "SmallPicturesFolder": "SmallPictures", @@ -81,14 +74,37 @@ } }, "AudioTranscoder": { - "Routes": { - "WorkingDirectory": "D:\\tempsFilesDev" - }, - "TranscodingTimeout": "00:05:00" + "TranscodingTimeout": "00:05:00", + "Ffmpeg": { + "ExecutableName": "ffmpeg", + "ManifestFileName": "manifest.mpd", + "AudioCodec": "aac", + "AudioBitrate": "128k", + "AudioChannels": 2, + "AudioSampleRate": 48000, + "AudioProfile": "aac_low", + "SegmentDurationSeconds": 4, + "InitSegmentName": "init-stream$RepresentationID$.m4s", + "MediaSegmentName": "chunk-stream$RepresentationID$-$Number$.m4s", + "AdditionalArguments": "" + } + }, + "UploadIntent": { + "UploadUrlExpiresInSeconds": 120, + "MaxActiveUploadIntentsPerUser": 5, + "MaxActiveUploadBytesPerUser": 209715200, + "MaxUploadBytes": 104857600, + "DefaultExpectedPictureSizeBytes": 10485760, + "DefaultExpectedAudioSizeBytes": 104857600, + "ExpirationJobIntervalSeconds": 300, + "ExpiredIntentsRetentionDays": 7, + "TempRootPrefix": "temp", + "TempUploadsRetentionDays": 3, + "TempCleanupJobIntervalSeconds": 3600 }, "Workers": { "Routes": { "TemporaryFilesDirectory": "" } } -} \ No newline at end of file +} diff --git a/WebApi/Extensions/ResultHttpExtensions.cs b/WebApi/Extensions/ResultHttpExtensions.cs index 7b8a939..6b3bb64 100644 --- a/WebApi/Extensions/ResultHttpExtensions.cs +++ b/WebApi/Extensions/ResultHttpExtensions.cs @@ -1,4 +1,5 @@ using Ardalis.Result; +using IResult = Microsoft.AspNetCore.Http.IResult; namespace WebApi.Extensions; diff --git a/WebApi/Extensions/ServiceCollectionExtensions.cs b/WebApi/Extensions/ServiceCollectionExtensions.cs index c152a47..91a7c41 100644 --- a/WebApi/Extensions/ServiceCollectionExtensions.cs +++ b/WebApi/Extensions/ServiceCollectionExtensions.cs @@ -3,6 +3,7 @@ using Mediator; using Musify.Application; using Musify.Infrastructure.MassTransit; using Musify.Infrastructure.Persistence; +using Musify.Application.Configuration; using Musify.Infrastructure.Services; using OpenTelemetry.Logs; using OpenTelemetry.Metrics; @@ -16,10 +17,12 @@ public static class ServiceCollectionExtensions { public static IServiceCollection AddApplicationServices(this IServiceCollection services, IConfiguration configuration) { - services.AddApplicationConfigurations(configuration); services.AddDatabase(configuration); - services.AddKeycloakService(configuration); + services.AddApplicationStorageConfiguration(configuration); + services.AddPlayListConfiguration(configuration); + services.AddTrackConfiguration(configuration); services.AddStorageService(configuration); + services.AddUploadIntentConfiguration(configuration); services.AddMassTransitClient(configuration); services.AddMediator(); services.AddOpenApi(); diff --git a/WebApi/WebApi.csproj b/WebApi/WebApi.csproj index 6034122..b1850e3 100644 --- a/WebApi/WebApi.csproj +++ b/WebApi/WebApi.csproj @@ -11,8 +11,9 @@ - - + + +