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