Модуль Python, реализующий ftps

Мне было интересно, может ли кто-нибудь указать мне на бесплатный модуль ftps для python.

Я новичок в Python, но это то, что мне нужно для рабочего проекта. Мне нужен ftps-клиент для подключения к стороннему ftps-серверу.

Благодарность,

Дэйвид.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
9
0
9 301
7

Ответы 7

Я сам не пробовал (да, я просто использовал Google и переходил по некоторым ссылкам), но http://www.lag.net/paramiko/ кажется рекомендуемым решением. На первый взгляд, это реализация SSH на чистом Python, которая позволяет туннелировать для таких вещей, как FTP.

Обновление: комментатор указал, что я перепутал sftp и ftps, извините. Я все же предлагаю хотя бы кратко изучить Парамико, чтобы убедиться, что он соответствует требованиям.

sftp и ftps - это не одно и то же.

jfs 16.10.2008 13:48

Скрученный, похоже, имеет некоторую реализацию FTPS (FTP через SSL) в подпроекте раковина. Я не эксперт, но Глиф, сам человек скрученный, указан на этом сайте. Возможно, ответив на его отвечать по другому вопросу, вы сможете найти более подробную информацию (удачи).

Спасибо за затычку :). Но FTPS (FTP, но через SSL) - это не то же самое, что SFTP (передача файлов через SSH, вообще не связанная с протоколом FTP).

Glyph 16.10.2008 15:54

Я считаю, что вы могли бы использовать Twisted для реализации FTPS, просто используя его реализацию FTP, но изменив атрибут FTPClient.connectFactory на функцию, которая что-то делает с connectSSL, а не с connectTCP.

Вы уверены, что хотите FTPS? SFTP - это другой, лучший и гораздо более популярный протокол в наши дни: Twisted также содержит реализация SFTP.

connectSSL может использоваться для неявного соединения FTPS, но явный FTPS (с использованием команды AUTH) более популярен, чем неявный FTPS. Тем не менее реализация Twisted FTP - хорошее начало. Следующим шагом может стать реализация AUTH (и co) вместе с изменением DTP.connectionMade.

Adi Roiban 09.02.2011 08:24

Мне не удалось найти бесплатный клиент sftp для Windows, поэтому в итоге я обернул PSFTP Putty с помощью модуля подпроцесса python. Я бы, наверное, использовал извращенную реализацию, упомянутую Glyph, если бы знал об этом.

В любом случае, если вам интересно, он доступен по адресу:

http://code.google.com/p/psftplib/

M2Cypto имеет модуль FTPS. Из документация:

>>> from M2Crypto import ftpslib
>>> f = ftpslib.FTP_TLS()
>>> f.connect('', 9021)
'220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.'
>>> f.auth_tls()
>>> f.set_pasv(0)
>>> f.login('ftp', 'ngps@')
'230 Ok.'
>>> f.retrlines('LIST')
-rw-rw-r--   1 0        198          2326 Jul  3  1996 apache_pb.gif
drwxrwxr-x   7 0        198          1536 Oct 10  2000 manual
drwxrwxr-x   2 0        198           512 Oct 31  2000 modpy
drwxrwxr-x   2 0        198           512 Oct 31  2000 bobo
drwxr-xr-x   2 0        198         14336 May 28 15:54 postgresql
drwxr-xr-x   4 100      198           512 May 16 17:19 home
drwxr-xr-x   7 100      100          3584 Sep 23  2000 openacs
drwxr-xr-x  10 0        0             512 Aug  5  2000 python1.5
-rw-r--r--   1 100      198           326 Jul 29 03:29 index.html
drwxr-xr-x  12 0        0             512 May 31 17:08 python2.1
'226 Transfer complete'
>>> f.quit()
'221 Goodbye.'
>>>

В качестве альтернативы, если вы хотите свести к минимуму использование сторонних модулей, вы должны иметь возможность создать подкласс стандартной библиотеки ftplib.FTP со встроенной (для Python) поддержкой SSL. Однако M2Crypto (или Скрученный, если вы хотите пойти по этому пути) - более простое решение.

Что касается реализации сервера, вы можете взглянуть на pyftpdlib: http://code.google.com/p/pyftpdlib/ Он включает демонстрационный скрипт, реализующий работающий сервер FTPS: http://code.google.com/p/pyftpdlib/source/browse/trunk/demo/tls_ftpd.py

Что касается реализации клиента, я предоставил патч, который будет включен в Python 2.7 и 3.2. http://bugs.python.org/issue2054

Модуль ftplib в Python версии 2.7.1 имеет все необходимые функции, включая поддержку TLS.

http://docs.python.org/library/ftplib.html#module-ftplib

Другие вопросы по теме