mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-09-04 23:16:41 +08:00
feat(backup): 新增 CDC 内容寻址仓库模式
使用内容定义分块、不可变 pack 与快照索引实现跨文件和跨快照去重。 接入多目标上传、软配额、恢复、下载、校验、保留和安全垃圾回收,并补充前端入口、中英文文档及端到端测试。 Closes #94
This commit is contained in:
@@ -9,9 +9,11 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
// BackupKindFull 全量备份;BackupKindDifferential 差异备份(仅含自基线全量以来的变更)。
|
||||
// BackupKindFull 全量归档;BackupKindDifferential 差异归档;
|
||||
// BackupKindRepository 为可独立恢复的 CDC 内容寻址快照。
|
||||
BackupKindFull = "full"
|
||||
BackupKindDifferential = "differential"
|
||||
BackupKindRepository = "repository"
|
||||
)
|
||||
|
||||
type BackupRecord struct {
|
||||
@@ -33,7 +35,7 @@ type BackupRecord struct {
|
||||
// Locked 保留锁定(法律保留):为 true 时该备份不参与保留期/数量自动清理,
|
||||
// 且禁止手动删除,直到显式解锁。用于保护合规快照、迁移前基线等关键备份。
|
||||
Locked bool `gorm:"column:locked;not null;default:false;index" json:"locked"`
|
||||
// BackupKind 备份类型:full(全量)/ differential(差异)。
|
||||
// BackupKind 备份类型:full(全量)/ differential(差异)/ repository(CDC 快照)。
|
||||
BackupKind string `gorm:"column:backup_kind;size:16;not null;default:'full';index" json:"backupKind"`
|
||||
// BaseRecordID 差异备份所基于的全量备份记录 ID(全量记录为 0)。
|
||||
BaseRecordID uint `gorm:"column:base_record_id;index;not null;default:0" json:"baseRecordId"`
|
||||
|
||||
@@ -12,9 +12,11 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
// BackupModeFull 全量模式(默认);BackupModeDifferential 差异模式(仅文件类型本机任务)。
|
||||
// BackupModeFull 全量模式(默认);BackupModeDifferential 差异归档;
|
||||
// BackupModeRepository 为 CDC 内容寻址仓库模式(仅文件类型本机任务)。
|
||||
BackupModeFull = "full"
|
||||
BackupModeDifferential = "differential"
|
||||
BackupModeRepository = "repository"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -55,7 +57,8 @@ type BackupTask struct {
|
||||
Compression string `gorm:"size:10;not null;default:'gzip'" json:"compression"`
|
||||
Encrypt bool `gorm:"not null;default:false" json:"encrypt"`
|
||||
MaxBackups int `gorm:"column:max_backups;not null;default:10" json:"maxBackups"`
|
||||
// BackupMode 备份模式:full(全量,默认)/ differential(差异)。差异仅支持本机文件任务。
|
||||
// BackupMode 备份模式:full(全量,默认)/ differential(差异归档)/
|
||||
// repository(FastCDC 分块、全局去重快照)。后两者仅支持本机文件任务。
|
||||
BackupMode string `gorm:"column:backup_mode;size:16;not null;default:'full'" json:"backupMode"`
|
||||
// DiffFullIntervalDays 差异模式下强制全量的间隔(天):最近全量超过该天数则本次自动改为全量,
|
||||
// 限制差异链跨度与单个差异体积。默认 7。
|
||||
|
||||
Reference in New Issue
Block a user