up
This commit is contained in:
parent
733a9c066a
commit
db15619f39
19
main.go
19
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")}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user