From ba9b744e5d0401fc7bfcbe7929a9ba62988bc7fe Mon Sep 17 00:00:00 2001 From: XShine555 Date: Sun, 31 May 2026 19:25:15 +0200 Subject: [PATCH] Fix audio DASH workflow: dispose source stream before delete and store S3 folder key as AudioFolderName --- .../Activities/Audio/TranscodeDashAudioActivity.cs | 12 +++++++----- .../Activities/Audio/UpdateTrackAudioActivity.cs | 13 ++----------- .../Arguments/UpdateTrackAudioArguments.cs | 2 +- .../Builders/AudioWorkflowRoutingSlipBuilder.cs | 2 +- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs b/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs index 3e8f6a8..5305cb0 100644 --- a/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs +++ b/Infrastructure/MassTransit/Activities/Audio/TranscodeDashAudioActivity.cs @@ -38,11 +38,13 @@ namespace Musify.Infrastructure.MassTransit.Activities try { - await using var fileStream = File.OpenRead(sourceFilePath); - await audioTranscoder.TranscodeToDashAsync( - fileStream, - workingDirectory, - executeContext.CancellationToken); + await using (var fileStream = File.OpenRead(sourceFilePath)) + { + await audioTranscoder.TranscodeToDashAsync( + fileStream, + workingDirectory, + executeContext.CancellationToken); + } File.Delete(sourceFilePath); return executeContext.Completed(); diff --git a/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs b/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs index 82d4d0b..befa597 100644 --- a/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs +++ b/Infrastructure/MassTransit/Activities/Audio/UpdateTrackAudioActivity.cs @@ -31,17 +31,8 @@ namespace Musify.Infrastructure.MassTransit.Activities.Audio throw; } - string? audioFolderKey; - try - { - audioFolderKey = executeContext.GetVariable(executeContext.Arguments.AudioFolderKeyVariable); - logger.LogDebug("Resolved audio folder key: {AudioFolderKey}", audioFolderKey); - } - catch (Exception exception) - { - logger.LogWarning(exception, "Audio folder key variable could not be resolved for track {TrackId}", track.Id); - return executeContext.Completed(); - } + var audioFolderKey = executeContext.Arguments.AudioFolderKey; + logger.LogDebug("Resolved audio folder key: {AudioFolderKey}", audioFolderKey); if (string.IsNullOrWhiteSpace(audioFolderKey)) { diff --git a/Infrastructure/MassTransit/Arguments/UpdateTrackAudioArguments.cs b/Infrastructure/MassTransit/Arguments/UpdateTrackAudioArguments.cs index aabb5da..10edb2b 100644 --- a/Infrastructure/MassTransit/Arguments/UpdateTrackAudioArguments.cs +++ b/Infrastructure/MassTransit/Arguments/UpdateTrackAudioArguments.cs @@ -2,5 +2,5 @@ { public record UpdateTrackAudioArguments( Guid TrackId, - string AudioFolderKeyVariable); + string AudioFolderKey); } \ No newline at end of file diff --git a/Infrastructure/MassTransit/RoutingSlip/Builders/AudioWorkflowRoutingSlipBuilder.cs b/Infrastructure/MassTransit/RoutingSlip/Builders/AudioWorkflowRoutingSlipBuilder.cs index d186353..6f2b0b9 100644 --- a/Infrastructure/MassTransit/RoutingSlip/Builders/AudioWorkflowRoutingSlipBuilder.cs +++ b/Infrastructure/MassTransit/RoutingSlip/Builders/AudioWorkflowRoutingSlipBuilder.cs @@ -58,7 +58,7 @@ namespace Musify.Infrastructure.MassTransit.RoutingSlip.Builders EndpointHelper.BuildExecuteActivityUri(UpdateTrackAudioActivity.ExecuteEndpointName), new UpdateTrackAudioArguments( message.TrackId, - RoutingSlipVariableNames.Audio.TranscodedDirectory)); + message.DestinationFolderKey)); return routingSlipBuilder; }