feat(backup): add debug logs and simplify S3 filename logic

This commit is contained in:
GeorgeDong32 2025-10-21 23:46:45 +08:00 committed by GeorgeDong32
parent 980f20fcca
commit c319a4f4d0
2 changed files with 17 additions and 7 deletions

View File

@ -617,13 +617,8 @@ class BackupManager {
}
async backupToS3(_: Electron.IpcMainInvokeEvent, data: string, s3Config: S3Config) {
const os = require('os')
const deviceName = os.hostname ? os.hostname() : 'device'
const timestamp = new Date()
.toISOString()
.replace(/[-:T.Z]/g, '')
.slice(0, 14)
const filename = s3Config.fileName || `cherry-studio.backup.${deviceName}.${timestamp}.zip`
// Use the filename provided by frontend, or a simple default (no timestamp generation here)
const filename = s3Config.fileName || 'cherry-studio.backup.zip'
logger.debug(`Starting S3 backup to ${filename}`)

View File

@ -197,10 +197,15 @@ export async function backupToWebdav({
let finalFileName: string
// 覆盖式单文件备份(仅在自动备份流程且保留份数=1时生效
logger.debug(
`[WebDAV Backup] Overwrite check: autoBackupProcess=${autoBackupProcess}, maxBackups=${webdavMaxBackups}, singleFileOverwrite=${webdavSingleFileOverwrite}`
)
if (autoBackupProcess && webdavMaxBackups === 1 && webdavSingleFileOverwrite) {
finalFileName = generateOverwriteFilename(webdavSingleFileName, hostname, deviceType)
logger.debug(`[WebDAV Backup] Using overwrite filename: ${finalFileName}`)
} else {
finalFileName = generateTimestampedFilename(customFileName, hostname, deviceType, timestamp)
logger.debug(`[WebDAV Backup] Using timestamped filename: ${finalFileName}`)
}
const backupData = await getBackupData()
@ -377,10 +382,15 @@ export async function backupToS3({
let finalFileName: string
// 覆盖式单文件备份(仅在自动备份流程且保留份数=1时生效
logger.debug(
`[S3 Backup] Overwrite check: autoBackupProcess=${autoBackupProcess}, maxBackups=${s3Config.maxBackups}, singleFileOverwrite=${s3Config.singleFileOverwrite}`
)
if (autoBackupProcess && s3Config.maxBackups === 1 && s3Config.singleFileOverwrite) {
finalFileName = generateOverwriteFilename(s3Config.singleFileName, hostname, deviceType)
logger.debug(`[S3 Backup] Using overwrite filename: ${finalFileName}`)
} else {
finalFileName = generateTimestampedFilename(customFileName, hostname, deviceType, timestamp)
logger.debug(`[S3 Backup] Using timestamped filename: ${finalFileName}`)
}
const backupData = await getBackupData()
@ -987,10 +997,15 @@ export async function backupToLocal({
let finalFileName: string
// 覆盖式单文件备份(仅在自动备份流程且保留份数=1时生效
logger.debug(
`[Local Backup] Overwrite check: autoBackupProcess=${autoBackupProcess}, maxBackups=${localBackupMaxBackups}, singleFileOverwrite=${localSingleFileOverwrite}`
)
if (autoBackupProcess && localBackupMaxBackups === 1 && localSingleFileOverwrite) {
finalFileName = generateOverwriteFilename(localSingleFileName, hostname, deviceType)
logger.debug(`[Local Backup] Using overwrite filename: ${finalFileName}`)
} else {
finalFileName = generateTimestampedFilename(customFileName, hostname, deviceType, timestamp)
logger.debug(`[Local Backup] Using timestamped filename: ${finalFileName}`)
}
const backupData = await getBackupData()