Я пытаюсь реализовать FTP-клиент в golang. Я использую библиотеку goftp
для этого. Я могу успешно войти на FTP-сервер, но после этого каждая команда (получить текущий рабочий каталог, загрузить файл и т. Д.) Выдает исключение panic: 502 Command not implemented.
. Например, в приведенном ниже коде я пытаюсь получить текущий рабочий каталог после входа на сервер.
Я могу выполнять все виды операций с помощью обычных команд ftp через CLI. Но здесь я заблокирован с 502
кодом ошибки. Я что-то здесь упускаю?
import (
"fmt"
"os"
"path/filepath"
goftp "gopkg.in/dutchcoders/goftp.v1"
)
// Actual code
if ftp, err = goftp.Connect(host); err != nil {
panic(err)
}
defer ftp.Close()
fmt.Println("Successfully connected to", host)
if err = ftp.Login(username, password); err != nil {
panic(err)
}
pwd, err := ftp.Pwd()
if err == nil {
fmt.Println("present working directory:", pwd)
} else {
panic(err)
}
РЕДАКТИРОВАТЬ
После включения режима отладки (используя goftp.ConnectDbg(host)
) я получил следующий журнал:
2019/10/25 22:26:03 <220 Служба готова для нового пользователя. </p>
2019/10/25 22:26:03 220 Служба готова для нового пользователя.
2019/10/25 22:26:03> ПОЛЬЗОВАТЕЛЬ pkgajulapalli
2019/10/25 22:26:03 <331 Имя пользователя в порядке, нужен пароль для pkgajulapalli. </p>
2019/ 10/25 22:26:03> Пароль PASS @ 123
2019/10/25 22:26:03 <230 Пользователь вошел в систему, продолжить. </p>
Войдите в систему с учетными данными
2019/10/25 22:26:05> PWD
2019/10/25 22:26:05 <502 Команда не выполнена. </p>
panic: 502 Команда не реализована.