Я пытаюсь использовать ftps для загрузки файла на наш FTP-сервер. Войти тривиален и работает:Как загрузить файл на сервере FTPS с использованием m2crypto
from M2Crypto import ftpslib
ftp = ftpslib.FTP_TLS()
ftp.connect(host)
ftp.login(username, password)
, а также спуск в каталог
for dir in directory:
ftp.cwd(dir)
Однако при попытке извлечения содержимого каталога:
if directory_name not in ftp.nlst():
ftp.mkd(directory_name)
я получаю 522 ошибку:
File "/usr/lib/python2.5/ftplib.py", line 459, in nlst
self.retrlines(cmd, files.append)
File "/usr/lib/python2.5/ftplib.py", line 407, in retrlines
conn = self.transfercmd(cmd)
File "/usr/lib/python2.5/ftplib.py", line 356, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/var/lib/python-support/python2.5/M2Crypto/ftpslib.py", line 86, in ntransfercmd
conn, size = FTP.ntransfercmd(self, cmd, rest)
File "/usr/lib/python2.5/ftplib.py", line 327, in ntransfercmd
resp = self.sendcmd(cmd)
File "/usr/lib/python2.5/ftplib.py", line 241, in sendcmd
return self.getresp()
File "/usr/lib/python2.5/ftplib.py", line 216, in getresp
raise error_perm, resp
ftplib.error_perm: 522 Data connections must be encrypted.
Кажется, TL S используется только для рукопожатия, а не для передач.
Это способ защитить передачу (я хотел бы загрузить файлы с помощью storbinary()
) с помощью M2Crypto? Если нет, то каковы другие альтернативы?