This commit is contained in:
cangui 2025-07-27 18:21:58 +02:00
parent 733a9c066a
commit db15619f39

19
main.go
View File

@ -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) log.Printf("[FTP] Tentative login user='%s' pass='%s'", user, pass)
if user == "cangui2089" { if user == "cangui2089" {
//os.MkdirAll("upload", 0755)
base := filepath.Clean("upload") 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 &ftpClientDriver{fs: fs}, nil
} }
return nil, errors.New("invalid login")} return nil, errors.New("invalid login")}