From 2b494063792182781df1248e28dca822bea9c0bf Mon Sep 17 00:00:00 2001 From: Har01d Date: Sun, 31 May 2026 09:29:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=99=BE=E5=BA=A6=E7=BD=91?= =?UTF-8?q?=E7=9B=98=E4=B8=B4=E6=97=B6=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drivers/baidu_netdisk/extension.go | 36 +++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/drivers/baidu_netdisk/extension.go b/drivers/baidu_netdisk/extension.go index b269fbe1..bcc6adad 100644 --- a/drivers/baidu_netdisk/extension.go +++ b/drivers/baidu_netdisk/extension.go @@ -4,6 +4,7 @@ import ( "errors" "net/http" stdpath "path" + "strings" "github.com/OpenListTeam/OpenList/v4/internal/conf" "github.com/OpenListTeam/OpenList/v4/internal/model" @@ -16,20 +17,45 @@ var baiduPanBaseURL = "https://pan.baidu.com" func (d *BaiduNetdisk) createTempDir() error { d.TempDirId = "/" - err := d.createDirectory(stdpath.Join("/", conf.TempDirName), true) - if err != nil { - log.Warnf("create temp dir failed: %v", err) - } files, err := d.getFiles("/") if err != nil { return err } + tempFolders := make([]model.Obj, 0) for _, file := range files { if file.ServerFilename == conf.TempDirName { d.TempDirId = file.Path - break + } else if strings.HasPrefix(file.ServerFilename, conf.TempDirName) { + tempFolders = append(tempFolders, fileToObj(file)) + } + } + + go func() { + for _, file := range tempFolders { + log.Infof("Delete Baidu temp dir: %s", file.GetPath()) + d.Delete(file) + } + }() + + if d.TempDirId == "/" { + path := stdpath.Join("/", conf.TempDirName) + err = d.createDirectory(path, true) + if err != nil { + log.Warnf("create temp dir failed: %v", err) + } + + files, err := d.getFiles("/") + if err != nil { + return err + } + + for _, file := range files { + if file.ServerFilename == conf.TempDirName { + d.TempDirId = file.Path + break + } } }