Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2023-03-17 09:42:44 +08:00
commit db987d36e8
7 changed files with 30 additions and 19 deletions

View file

@ -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.)"
}
}

View file

@ -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.)"
}
}

View file

@ -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.)"
}
}

View file

@ -1118,6 +1118,7 @@
"192": "正在重建歷史數據索引,請稍等...",
"193": "請先參考用戶指南 [人工智能] 章節進行配置",
"194": "堅果雲接口存在限制,請使用其他 WebDAV 服務",
"195": "系統時間不正確,請校準系統時間後再試"
"195": "系統時間不正確,請校準系統時間後再試",
"196": "請勿將工作空間設置在第三方同步盤路徑下否則數據會被損壞OneDrive/Dropbox/Google Drive/堅果雲/百度網盤/騰訊微雲等)"
}
}

View file

@ -1118,6 +1118,7 @@
"192": "正在重建历史数据索引,请稍等...",
"193": "请先参考用户指南 [人工智能] 章节进行配置",
"194": "坚果云接口存在限制,请使用其他 WebDAV 服务",
"195": "系统时间不正确,请校准系统时间后再试"
"195": "系统时间不正确,请校准系统时间后再试",
"196": "请勿将工作空间设置在第三方同步盘路径下否则数据会被损坏OneDrive/Dropbox/Google Drive/坚果云/百度网盘/腾讯微云等)"
}
}

View file

@ -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))

View file

@ -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,9 +144,9 @@ func CheckFileSysStatus() {
const fileSysStatusCheckFile = ".siyuan/filesys_status_check"
for {
workspaceDirLower := strings.ToLower(WorkspaceDir)
if strings.Contains(workspaceDirLower, "onedrive") || strings.Contains(workspaceDirLower, "dropbox") ||
strings.Contains(workspaceDirLower, "google drive") || strings.Contains(workspaceDirLower, "pcloud") {
<-thirdPartySyncCheckTicker.C
if IsCloudDrivePath(WorkspaceDir) {
reportFileSysFatalError(fmt.Errorf("workspace dir [%s] is in third party sync dir", WorkspaceDir))
continue
}
@ -169,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 {
@ -198,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
}
@ -232,7 +226,12 @@ func CheckFileSysStatus() {
break
}
<-thirdPartySyncCheckTicker.C
}
}
}
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")
}