Skip to content

Commit 53bae3e

Browse files
author
Fastace
committed
Fix:修复文件备份遗漏的JSON文件
1 parent a6a9227 commit 53bae3e

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

source/core/service/src/main/kotlin/com/xayah/core/service/medium/backup/AbstractBackupService.kt

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -203,12 +203,12 @@ internal abstract class AbstractBackupService : AbstractMediumService() {
203203

204204
override suspend fun onProcessing() {
205205
mTaskEntity.update(rawBytes = mTaskRepo.getRawBytes(TaskType.MEDIA), availableBytes = mTaskRepo.getAvailableBytes(OpType.BACKUP), totalBytes = mTaskRepo.getTotalBytes(OpType.BACKUP), totalCount = mMediaEntities.size)
206-
log { "Task count: ${mMediaEntities.size}." }
206+
Log.d(mTAG, "Task count: ${mMediaEntities.size}.")
207207

208208
for (index in mMediaEntities.indices) {
209209
// 1. 循环开始时检查取消标志
210210
if (isCanceled()) {
211-
log { "Backup canceled by user at media index: $index" }
211+
Log.d(mTAG, "Backup canceled by user at media index: $index")
212212
break // 直接退出循环
213213
}
214214

@@ -222,7 +222,7 @@ internal abstract class AbstractBackupService : AbstractMediumService() {
222222
mMediaEntities.size,
223223
index
224224
)
225-
log { "Current media: ${media.mediaEntity}" }
225+
Log.d(mTAG, "Current media: ${media.mediaEntity}")
226226

227227
media.update(state = OperationState.PROCESSING)
228228
val m = media.mediaEntity
@@ -250,21 +250,33 @@ internal abstract class AbstractBackupService : AbstractMediumService() {
250250
mMediaDao.upsert(restoreEntity)
251251
mMediaDao.upsert(m)
252252
media.update(mediaEntity = m)
253-
// 新增:在配置文件创建后执行Restic备份
254-
val compressedFile = findCompressedFile(dstDir)
255-
if (compressedFile != null) {
256-
Log.d("ResticFlow", "配置文件创建后开始Restic备份: ${m.name}")
257-
val resticSuccess = backupWithRestic(m.name, compressedFile)
258-
Log.d("ResticFlow", "Restic备份结果: $resticSuccess")
253+
254+
// 新增:双文件Restic备份
255+
val tarFile = File("$dstDir/media.tar")
256+
val configFile = File("$dstDir/media_restore_config.json")
257+
258+
if (tarFile.exists() && configFile.exists()) {
259+
Log.d("ResticFlow", "两个文件都存在,开始Restic备份: ${m.name}")
260+
261+
// 备份tar文件
262+
val tarSuccess = backupWithRestic("${m.name}-media", tarFile)
263+
Log.d("ResticFlow", "tar文件Restic备份结果: $tarSuccess")
264+
265+
// 备份配置文件
266+
val configSuccess = backupWithRestic("${m.name}-config", configFile)
267+
Log.d("ResticFlow", "配置文件Restic备份结果: $configSuccess")
268+
} else {
269+
Log.d("ResticFlow", "文件缺失,跳过Restic备份")
259270
}
271+
260272
mTaskEntity.update(successCount = mTaskEntity.successCount + 1)
261273
} else {
262274
// 备份失败,清理已上传的文件
263-
log { "Backup failed for ${m.name}, cleaning up remote files..." }
275+
Log.d(mTAG, "Backup failed for ${m.name}, cleaning up remote files...")
264276
runCatching {
265277
onCleanupFailedBackup(archivesRelativeDir = m.archivesRelativeDir)
266278
}.onFailure { e ->
267-
log { "Failed to cleanup remote files: ${e.message}" }
279+
Log.e(mTAG, "Failed to cleanup remote files: ${e.message}")
268280
}
269281
mTaskEntity.update(failureCount = mTaskEntity.failureCount + 1)
270282
}
@@ -277,7 +289,7 @@ internal abstract class AbstractBackupService : AbstractMediumService() {
277289

278290
// 2. 备份完成后检查取消标志(在保存配置前)
279291
if (isCanceled()) {
280-
log { "Backup canceled after media backup, skipping remaining items" }
292+
Log.d(mTAG, "Backup canceled after media backup, skipping remaining items")
281293
break // 退出循环
282294
}
283295

0 commit comments

Comments
 (0)