up
This commit is contained in:
parent
db15619f39
commit
dfe5d6cb96
46
main.go
46
main.go
@ -39,31 +39,51 @@ func (d *ftpMainDriver) ClientConnected(cc ftpserverlib.ClientContext) (string,
|
||||
}
|
||||
func (d *ftpMainDriver) ClientDisconnected(cc ftpserverlib.ClientContext) {}
|
||||
func (d *ftpMainDriver) GetTLSConfig() (*tls.Config, error) { return nil, nil }
|
||||
// func (d *ftpMainDriver) AuthUser(cc ftpserverlib.ClientContext, user, pass string) (ftpserverlib.ClientDriver, error) {
|
||||
// log.Printf("[FTP] Tentative login user='%s' pass='%s'", user, pass)
|
||||
|
||||
// if user == "cangui2089" {
|
||||
// base := filepath.Clean("upload")
|
||||
// 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")}
|
||||
func (d *ftpMainDriver) AuthUser(cc ftpserverlib.ClientContext, user, pass string) (ftpserverlib.ClientDriver, error) {
|
||||
log.Printf("[FTP] Tentative login user='%s' pass='%s'", user, pass)
|
||||
|
||||
if user == "cangui2089" {
|
||||
base := filepath.Clean("upload")
|
||||
absBase, err := filepath.Abs(base)
|
||||
if err != nil {
|
||||
log.Printf("[FTP] ERREUR : Impossible de résoudre le chemin absolu de 'upload' : %v", err)
|
||||
log.Printf("[FTP] Erreur chemin 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 err != nil || !info.IsDir() {
|
||||
log.Printf("[FTP] Dossier absent ou non dir: %v", err)
|
||||
return nil, errors.New("le dossier upload est absent ou non accessible")
|
||||
}
|
||||
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")
|
||||
files, _ := os.ReadDir(absBase)
|
||||
for _, f := range files {
|
||||
log.Printf("[FTP] Fichier trouvé: %s (dir=%v)", f.Name(), f.IsDir())
|
||||
}
|
||||
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")}
|
||||
}
|
||||
|
||||
func (c *ftpClientDriver) Name() string { return "aferofs" }
|
||||
func (c *ftpClientDriver) Create(name string) (afero.File, error) { return c.fs.Create(name) }
|
||||
|
||||
Loading…
Reference in New Issue
Block a user