From 611a3f48d7955e0cb21798baccae4f6f5edc826b Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Thu, 16 Mar 2023 23:39:00 +0800 Subject: [PATCH 1/3] =?UTF-8?q?:art:=20=E4=BD=BF=E7=94=A8=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=90=8C=E6=AD=A5=E7=9B=98=E6=97=B6=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=8F=90=E7=A4=BA=E5=B9=B6=E9=80=80=E5=87=BA=E5=86=85?= =?UTF-8?q?=E6=A0=B8=20https://github.com/siyuan-note/siyuan/issues/7683?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/util/runtime.go | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index bda1629f9..2b2d78b7b 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -127,8 +127,7 @@ var ( ) var ( - thirdPartySyncCheckTicker = time.NewTicker(time.Minute * 30) - firstThirdPartySyncCheck = true + thirdPartySyncCheckTicker = time.NewTicker(time.Minute * 10) ) func CheckFileSysStatus() { @@ -136,11 +135,6 @@ func CheckFileSysStatus() { return } - if firstThirdPartySyncCheck { - firstThirdPartySyncCheck = false - time.Sleep(time.Second * 10) - } - reportFileSysFatalError := func(err error) { stack := debug.Stack() logging.LogErrorf("check file system status failed: %s, %s", err, stack) @@ -150,6 +144,8 @@ func CheckFileSysStatus() { const fileSysStatusCheckFile = ".siyuan/filesys_status_check" for { + <-thirdPartySyncCheckTicker.C + workspaceDirLower := strings.ToLower(WorkspaceDir) if strings.Contains(workspaceDirLower, "onedrive") || strings.Contains(workspaceDirLower, "dropbox") || strings.Contains(workspaceDirLower, "google drive") || strings.Contains(workspaceDirLower, "pcloud") { @@ -232,7 +228,6 @@ func CheckFileSysStatus() { break } - <-thirdPartySyncCheckTicker.C } } } From 6b43dbad4b5a506f9c7c0aae576d5bac77e05864 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 17 Mar 2023 08:59:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?:art:=20=E4=BD=BF=E7=94=A8=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=90=8C=E6=AD=A5=E7=9B=98=E6=97=B6=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=8F=90=E7=A4=BA=E5=B9=B6=E9=80=80=E5=87=BA=E5=86=85?= =?UTF-8?q?=E6=A0=B8=20https://github.com/siyuan-note/siyuan/issues/7683?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/appearance/langs/en_US.json | 3 ++- app/appearance/langs/es_ES.json | 3 ++- app/appearance/langs/fr_FR.json | 3 ++- app/appearance/langs/zh_CHT.json | 3 ++- app/appearance/langs/zh_CN.json | 3 ++- kernel/api/workspace.go | 7 +++++++ kernel/util/runtime.go | 10 +++++++--- 7 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index f0d631c59..65929f856 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1118,6 +1118,7 @@ "192": "Rebuilding historical data index, please wait...", "193": "Please refer to the [Artificial Intelligence] chapter of the User Guide for configuration", "194": "There are restrictions on the Nutstore interface, please use other WebDAV services", - "195": "The system time is incorrect, please calibrate the system time and try again" + "195": "The system time is incorrect, please calibrate the system time and try again", + "196": "Do not set the workspace under the path of a third-party sync disk, otherwise the data will be damaged (OneDrive/Dropbox/Google Drive/Nutstore/Baidu Netdisk/Tencent Weiyun, etc.)" } } diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index f51994064..d45901647 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1118,6 +1118,7 @@ "192": "Reconstruyendo el índice de datos históricos, espere...", "193": "Consulte el capítulo [Inteligencia artificial] de la guía del usuario para la configuración", "194": "Existen restricciones en la interfaz de Nutstore, utilice otros servicios WebDAV", - "195": "La hora del sistema es incorrecta, calibre la hora del sistema y vuelva a intentarlo" + "195": "La hora del sistema es incorrecta, calibre la hora del sistema y vuelva a intentarlo", + "196": "No configure el espacio de trabajo bajo la ruta de un disco de sincronización de terceros, de lo contrario, los datos se dañarán (OneDrive/Dropbox/Google Drive/Nutstore/Baidu Netdisk/Tencent Weiyun, etc.)" } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 9ea12b5b7..a6f6f2060 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1118,6 +1118,7 @@ "192": "Reconstruction de l'index des données historiques, veuillez patienter...", "193": "Veuillez vous référer au chapitre [Intelligence Artificielle] du guide de l'utilisateur pour la configuration", "194": "Il existe des restrictions sur l'interface Nutstore, veuillez utiliser d'autres services WebDAV", - "195": "L'heure du système est incorrecte, veuillez calibrer l'heure du système et réessayer" + "195": "L'heure du système est incorrecte, veuillez calibrer l'heure du système et réessayer", + "196": "Ne définissez pas l'espace de travail sous le chemin d'un disque de synchronisation tiers, sinon les données seront endommagées (OneDrive/Dropbox/Google Drive/Nutstore/Baidu Netdisk/Tencent Weiyun, etc.)" } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 43b2893d5..b31d9443f 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1118,6 +1118,7 @@ "192": "正在重建歷史數據索引,請稍等...", "193": "請先參考用戶指南 [人工智能] 章節進行配置", "194": "堅果雲接口存在限制,請使用其他 WebDAV 服務", - "195": "系統時間不正確,請校準系統時間後再試" + "195": "系統時間不正確,請校準系統時間後再試", + "196": "請勿將工作空間設置在第三方同步盤路徑下,否則數據會被損壞(OneDrive/Dropbox/Google Drive/堅果雲/百度網盤/騰訊微雲等)" } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 448202b73..18d1002ea 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1118,6 +1118,7 @@ "192": "正在重建历史数据索引,请稍等...", "193": "请先参考用户指南 [人工智能] 章节进行配置", "194": "坚果云接口存在限制,请使用其他 WebDAV 服务", - "195": "系统时间不正确,请校准系统时间后再试" + "195": "系统时间不正确,请校准系统时间后再试", + "196": "请勿将工作空间设置在第三方同步盘路径下,否则数据会被损坏(OneDrive/Dropbox/Google Drive/坚果云/百度网盘/腾讯微云等)" } } diff --git a/kernel/api/workspace.go b/kernel/api/workspace.go index 3b6b1510c..7ae5aaa52 100644 --- a/kernel/api/workspace.go +++ b/kernel/api/workspace.go @@ -197,6 +197,13 @@ func setWorkspaceDir(c *gin.Context) { return } + if util.IsCloudDrivePath(path) { + ret.Code = -1 + ret.Msg = model.Conf.Language(196) + ret.Data = map[string]interface{}{"closeTimeout": 7000} + return + } + if gulu.OS.IsWindows() { // 改进判断工作空间路径实现 https://github.com/siyuan-note/siyuan/issues/7569 installDirLower := strings.ToLower(filepath.Dir(util.WorkingDir)) diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index 2b2d78b7b..e38f25646 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -146,9 +146,7 @@ func CheckFileSysStatus() { for { <-thirdPartySyncCheckTicker.C - workspaceDirLower := strings.ToLower(WorkspaceDir) - if strings.Contains(workspaceDirLower, "onedrive") || strings.Contains(workspaceDirLower, "dropbox") || - strings.Contains(workspaceDirLower, "google drive") || strings.Contains(workspaceDirLower, "pcloud") { + if IsCloudDrivePath(WorkspaceDir) { reportFileSysFatalError(fmt.Errorf("workspace dir [%s] is in third party sync dir", WorkspaceDir)) continue } @@ -231,3 +229,9 @@ func CheckFileSysStatus() { } } } + +func IsCloudDrivePath(absPath string) bool { + absPathLower := strings.ToLower(absPath) + return strings.Contains(absPathLower, "onedrive") || strings.Contains(absPathLower, "dropbox") || + strings.Contains(absPathLower, "google drive") || strings.Contains(absPathLower, "pcloud") +} From deee73d5ad3f0da6d399e965f559c082fdcbe29d Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 17 Mar 2023 09:10:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?:art:=20=E4=BD=BF=E7=94=A8=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E5=90=8C=E6=AD=A5=E7=9B=98=E6=97=B6=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=8F=90=E7=A4=BA=E5=B9=B6=E9=80=80=E5=87=BA=E5=86=85?= =?UTF-8?q?=E6=A0=B8=20https://github.com/siyuan-note/siyuan/issues/7683?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/util/runtime.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index e38f25646..6ee85eb04 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -163,7 +163,7 @@ func CheckFileSysStatus() { } for i := 0; i < 32; i++ { - tmp := filepath.Join(dir, "check_"+gulu.Rand.String(7)) + tmp := filepath.Join(dir, "check_consistency") data := make([]byte, 1024*4) _, err := rand.Read(data) if nil != err { @@ -192,13 +192,13 @@ func CheckFileSysStatus() { time.Sleep(200 * time.Millisecond) - if err = os.Rename(tmp, tmp+"_1"); nil != err { + if err = os.Rename(tmp, tmp+"_renamed"); nil != err { reportFileSysFatalError(err) break } time.Sleep(200 * time.Millisecond) - if err = os.Rename(tmp+"_1", tmp); nil != err { + if err = os.Rename(tmp+"_renamed", tmp); nil != err { reportFileSysFatalError(err) break }