@@ -4,6 +4,24 @@ import { findComposeById } from "@dokploy/server/services/compose";
44import type { findVolumeBackupById } from "@dokploy/server/services/volume-backups" ;
55import { getS3Credentials , normalizeS3Path } from "../backups/utils" ;
66
7+ export const getVolumeServiceAppName = (
8+ volumeBackup : Awaited < ReturnType < typeof findVolumeBackupById > > ,
9+ ) : string => {
10+ if ( volumeBackup . compose ?. appName ) {
11+ return volumeBackup . serviceName
12+ ? `${ volumeBackup . compose . appName } _${ volumeBackup . serviceName } `
13+ : volumeBackup . compose . appName ;
14+ }
15+ const serviceAppName =
16+ volumeBackup . application ?. appName ||
17+ volumeBackup . postgres ?. appName ||
18+ volumeBackup . mysql ?. appName ||
19+ volumeBackup . mariadb ?. appName ||
20+ volumeBackup . mongo ?. appName ||
21+ volumeBackup . redis ?. appName ;
22+ return serviceAppName || volumeBackup . appName ;
23+ } ;
24+
725export const backupVolume = async (
826 volumeBackup : Awaited < ReturnType < typeof findVolumeBackupById > > ,
927) => {
@@ -12,8 +30,9 @@ export const backupVolume = async (
1230 volumeBackup . application ?. serverId || volumeBackup . compose ?. serverId ;
1331 const { VOLUME_BACKUPS_PATH , VOLUME_BACKUP_LOCK_PATH } = paths ( ! ! serverId ) ;
1432 const destination = volumeBackup . destination ;
33+ const s3AppName = getVolumeServiceAppName ( volumeBackup ) ;
1534 const backupFileName = `${ volumeName } -${ new Date ( ) . toISOString ( ) } .tar` ;
16- const bucketDestination = `${ volumeBackup . appName } /${ normalizeS3Path ( prefix || "" ) } ${ backupFileName } ` ;
35+ const bucketDestination = `${ s3AppName } /${ normalizeS3Path ( prefix || "" ) } ${ backupFileName } ` ;
1736 const rcloneFlags = getS3Credentials ( volumeBackup . destination ) ;
1837 const rcloneDestination = `:s3:${ destination . bucket } /${ bucketDestination } ` ;
1938 const volumeBackupPath = path . join ( VOLUME_BACKUPS_PATH , volumeBackup . appName ) ;
0 commit comments