ftplib.error_perm: 550 Ошибка создания каталога при использовании FTP_TLS - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь подключиться к безопасному FTP-серверу, созданному на основе этой ссылки . Я не следовал за шагом 8 в ссылке. Я могу установить sh соединение, а также изменить и распечатать каталоги, но не могу создать новые каталоги. Я также не могу получить список файлов.

Вот мой фрагмент кода:

import ssl
from ftplib import FTP_TLS
import sys
import os
import os.path


def connect():
    ftp = FTP_TLS()
    ftp.debugging = 2
    ftp.connect('ipaddress', 21)
    ftp.set_pasv(False)
    ftp.login('user', 'passwd')
    return ftp


ftps = connect()
destdir = "/"
try:
    resp = ftps.pwd()
    ftps.cwd(destdir)
except Exception:
    ftps.mkd(destdir)
    print(resp)
root = 'C:\\Users\\****\\****\\Logs'  # local dir


for (dir, _, files) in os.walk(root):
    newdir = destdir+dir[len(root):len(dir)].replace("\\", "/")
    print(newdir)
    try:
        ftps.cwd(newdir)
    except Exception:
        ftps.mkd(newdir)

Я использую python 3.7.3 и соответствующий ftplib. Я был бы рад предоставить любую другую необходимую информацию.

PS: я могу соединиться с Filezilla и создать каталоги.

Это ошибка после запуска.

Output Error!

Я могу успешно создавать каталоги, когда я изменяю каталог на / logs. Я получаю сообщение об ошибке «ftplib.error_perm: 500 Недопустимая команда PORT». всякий раз, когда я посылаю cmd как retrlines или storbinary, я получаю error Я искал об этом, и люди просили установить его в режим pasv. Когда я это делаю, я получаю эту ошибку . К вашему сведению, я включил режим pasv в файле конфигурации. Я попытался изменить номер порта на число между портами pasv, включенными в файле конфигурации (между 30000-31000). Не подключается и в этом случае. Возвращена ошибка: «ConnectionRefusedError: [WinError 10061] Не удалось установить соединение, поскольку целевая машина активно отказывала в этом». Я впервые работаю с FTP-сервером или, если на то пошло, с любым сервером, поэтому мои проблемы могут показаться тривиальными. Я прошу прощения за ваши проблемы. Спасибо.

...