From e408ca69b70d643fb903a01c5c17e1c1efdc8bb2 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 9 Nov 2023 16:21:59 +0800 Subject: [PATCH] :art: Automatically purge unreferenced data snapshots older than 30 days https://github.com/siyuan-note/siyuan/issues/9613 --- kernel/conf/{Repo.go => repo.go} | 7 +++-- kernel/model/conf.go | 53 +++++++++++++++++--------------- 2 files changed, 34 insertions(+), 26 deletions(-) rename kernel/conf/{Repo.go => repo.go} (82%) diff --git a/kernel/conf/Repo.go b/kernel/conf/repo.go similarity index 82% rename from kernel/conf/Repo.go rename to kernel/conf/repo.go index 7a4b6f107..8f6ec861e 100644 --- a/kernel/conf/Repo.go +++ b/kernel/conf/repo.go @@ -23,11 +23,14 @@ import ( ) type Repo struct { - Key []byte `json:"key"` // AES 密钥 + Key []byte `json:"key"` // AES 密钥 + HistoryRetentionDays int `json:"historyRetentionDays"` // 历史保留天数 } func NewRepo() *Repo { - return &Repo{} + return &Repo{ + HistoryRetentionDays: 30, + } } func (*Repo) GetSaveDir() string { diff --git a/kernel/model/conf.go b/kernel/model/conf.go index 2c4c0419a..a752547f5 100644 --- a/kernel/model/conf.go +++ b/kernel/model/conf.go @@ -192,18 +192,44 @@ func InitConf() { if nil == Conf.Tag { Conf.Tag = conf.NewTag() } + if nil == Conf.Editor { Conf.Editor = conf.NewEditor() } if 1 > len(Conf.Editor.Emoji) { Conf.Editor.Emoji = []string{} } + if 9 > Conf.Editor.FontSize || 72 < Conf.Editor.FontSize { + Conf.Editor.FontSize = 16 + } + if "" == Conf.Editor.PlantUMLServePath { + Conf.Editor.PlantUMLServePath = "https://www.plantuml.com/plantuml/svg/~1" + } if 1 > Conf.Editor.BlockRefDynamicAnchorTextMaxLen { Conf.Editor.BlockRefDynamicAnchorTextMaxLen = 64 } if 5120 < Conf.Editor.BlockRefDynamicAnchorTextMaxLen { Conf.Editor.BlockRefDynamicAnchorTextMaxLen = 5120 } + if 1440 < Conf.Editor.GenerateHistoryInterval { + Conf.Editor.GenerateHistoryInterval = 1440 + } + if 1 > Conf.Editor.HistoryRetentionDays { + Conf.Editor.HistoryRetentionDays = 30 + } + if 48 > Conf.Editor.DynamicLoadBlocks { + Conf.Editor.DynamicLoadBlocks = 48 + } + if 1024 < Conf.Editor.DynamicLoadBlocks { + Conf.Editor.DynamicLoadBlocks = 1024 + } + if 0 > Conf.Editor.BacklinkExpandCount { + Conf.Editor.BacklinkExpandCount = 0 + } + if 0 > Conf.Editor.BackmentionExpandCount { + Conf.Editor.BackmentionExpandCount = 0 + } + if nil == Conf.Export { Conf.Export = conf.NewExport() } @@ -214,16 +240,11 @@ func InitConf() { if "" == Conf.Export.PandocBin { Conf.Export.PandocBin = util.PandocBinPath } - if 9 > Conf.Editor.FontSize || 72 < Conf.Editor.FontSize { - Conf.Editor.FontSize = 16 - } - if "" == Conf.Editor.PlantUMLServePath { - Conf.Editor.PlantUMLServePath = "https://www.plantuml.com/plantuml/svg/~1" - } if nil == Conf.Graph || nil == Conf.Graph.Local || nil == Conf.Graph.Global { Conf.Graph = conf.NewGraph() } + if nil == Conf.System { Conf.System = conf.NewSystem() Conf.OpenHelp = true @@ -304,24 +325,8 @@ func InitConf() { if nil == Conf.Repo { Conf.Repo = conf.NewRepo() } - - if 1440 < Conf.Editor.GenerateHistoryInterval { - Conf.Editor.GenerateHistoryInterval = 1440 - } - if 1 > Conf.Editor.HistoryRetentionDays { - Conf.Editor.HistoryRetentionDays = 7 - } - if 48 > Conf.Editor.DynamicLoadBlocks { - Conf.Editor.DynamicLoadBlocks = 48 - } - if 1024 < Conf.Editor.DynamicLoadBlocks { - Conf.Editor.DynamicLoadBlocks = 1024 - } - if 0 > Conf.Editor.BacklinkExpandCount { - Conf.Editor.BacklinkExpandCount = 0 - } - if 0 > Conf.Editor.BackmentionExpandCount { - Conf.Editor.BackmentionExpandCount = 0 + if 1 > Conf.Repo.HistoryRetentionDays { + Conf.Repo.HistoryRetentionDays = 30 } if nil == Conf.Search {