diff --git a/SQLBackupToCOS/BackupService.cs b/SQLBackupToCOS/BackupService.cs index 6b8b79b..f9945aa 100644 --- a/SQLBackupToCOS/BackupService.cs +++ b/SQLBackupToCOS/BackupService.cs @@ -186,7 +186,6 @@ public class BackupService(ILogger logger, IConfiguration config, await CompressDirectoryAsync([dumpDir, extraDir], finalDump, ct); - Directory.Delete(dumpDir, recursive: true); _logger.LogInformation("Backup completed: {File}", finalDump); _outputService.CleanOutputDirFiles(); @@ -198,6 +197,27 @@ public class BackupService(ILogger logger, IConfiguration config, _logger.LogError(ex, "Error during backup process."); throw; } + finally + { + try + { + if (Directory.Exists(dumpDir)) + { + Directory.Delete(dumpDir, recursive: true); + _logger.LogInformation("Cleaned temporary dump directory: {Dir}", dumpDir); + } + + if (File.Exists(finalDump)) + { + File.Delete(finalDump); + _logger.LogInformation("Cleaned temporary archive file: {File}", finalDump); + } + } + catch (Exception cleanupEx) + { + _logger.LogWarning(cleanupEx, "Failed to clean temporary files in /data/dumps."); + } + } } private async Task CompressDirectoryAsync(string[] sourceDirs, string targetFile, CancellationToken ct)