From 808001d8dea7e402a783b2e2882316d00d4cae0a Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Sat, 7 Mar 2026 01:22:53 -0600 Subject: [PATCH] refactor: enhance volume backup path handling to ensure proper prefix usage --- packages/server/src/utils/volume-backups/backup.ts | 5 ++++- packages/server/src/utils/volume-backups/utils.ts | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/server/src/utils/volume-backups/backup.ts b/packages/server/src/utils/volume-backups/backup.ts index 3d229ef64..ad3eea29f 100644 --- a/packages/server/src/utils/volume-backups/backup.ts +++ b/packages/server/src/utils/volume-backups/backup.ts @@ -13,7 +13,10 @@ export const backupVolume = async ( const { VOLUME_BACKUPS_PATH, VOLUME_BACKUP_LOCK_PATH } = paths(!!serverId); const destination = volumeBackup.destination; const backupFileName = `${volumeName}-${new Date().toISOString()}.tar`; - const bucketDestination = `${normalizeS3Path(prefix)}${backupFileName}`; + const effectivePrefix = prefix + ? normalizeS3Path(prefix) + : `${volumeBackup.appName}/`; + const bucketDestination = `${effectivePrefix}${backupFileName}`; const rcloneFlags = getS3Credentials(volumeBackup.destination); const rcloneDestination = `:s3:${destination.bucket}/${bucketDestination}`; const volumeBackupPath = path.join(VOLUME_BACKUPS_PATH, volumeBackup.appName); diff --git a/packages/server/src/utils/volume-backups/utils.ts b/packages/server/src/utils/volume-backups/utils.ts index d9e0b3bd5..d179dd096 100644 --- a/packages/server/src/utils/volume-backups/utils.ts +++ b/packages/server/src/utils/volume-backups/utils.ts @@ -81,7 +81,9 @@ const cleanupOldVolumeBackups = async ( try { const rcloneFlags = getS3Credentials(destination); - const normalizedPrefix = normalizeS3Path(prefix); + const normalizedPrefix = prefix + ? normalizeS3Path(prefix) + : `${volumeBackup.appName}/`; const backupFilesPath = `:s3:${destination.bucket}/${normalizedPrefix}`; const listCommand = `rclone lsf ${rcloneFlags.join(" ")} --include \"${volumeName}-*.tar\" :s3:${destination.bucket}/${normalizedPrefix}`; const sortAndPick = `sort -r | tail -n +$((${keepLatestCount}+1)) | xargs -I{}`;