From db15619f39d37c5ba53e7e7f771ed809f448d03c Mon Sep 17 00:00:00 2001 From: cangui Date: Sun, 27 Jul 2025 18:21:58 +0200 Subject: [PATCH] up --- main.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 1f72d32..9dbc54d 100644 --- a/main.go +++ b/main.go @@ -43,9 +43,24 @@ func (d *ftpMainDriver) AuthUser(cc ftpserverlib.ClientContext, user, pass strin log.Printf("[FTP] Tentative login user='%s' pass='%s'", user, pass) if user == "cangui2089" { - //os.MkdirAll("upload", 0755) base := filepath.Clean("upload") - fs := afero.NewBasePathFs(afero.NewOsFs(), base) + absBase, err := filepath.Abs(base) + if err != nil { + log.Printf("[FTP] ERREUR : Impossible de résoudre le chemin absolu de 'upload' : %v", err) + return nil, errors.New("erreur chemin upload") + } + // Vérifie que le dossier existe vraiment et est accessible + info, err := os.Stat(absBase) + if err != nil { + log.Printf("[FTP] ERREUR : Le dossier upload n'existe pas (%s) : %v", absBase, err) + return nil, errors.New("le dossier upload est absent") + } + if !info.IsDir() { + log.Printf("[FTP] ERREUR : Le chemin upload (%s) n'est pas un dossier", absBase) + return nil, errors.New("upload n'est pas un dossier") + } + log.Printf("[FTP] OK dossier upload : %s (mode %v, owner UID=%d)", absBase, info.Mode(), info.Sys()) + fs := afero.NewBasePathFs(afero.NewOsFs(), absBase) return &ftpClientDriver{fs: fs}, nil } return nil, errors.New("invalid login")}