FTPES(明示的)を実行するにはpythonクライアントが必要です。これを実行できるpythonパッケージの経験がある人はいますか。
Python でこれを行うことはできませんが、FileZilla などのツールを使用して FTP サーバーに接続できます。
ありがとう
FTP-SSL Explicit は、ネイティブ Python で十分にサポートされています。接続を設定したら、すべての標準の ftplib コマンドを使用できます。詳細は http://docs.python.org/2/library/ftplib.html#ftplib.FTP_TLSにあります。
ファイルをダウンロードするための基本的な例を次に示します。
from ftplib import FTP_TLS
ftps = FTP_TLS('ftp.MySite.com')
ftps.login('testuser', 'testpass') # login anonymously before securing control channel
ftps.prot_p() # switch to secure data connection.. IMPORTANT! Otherwise, only the user and password is encrypted and not all the file data.
ftps.retrlines('LIST')
filename = 'remote_filename.bin'
print 'Opening local file ' + filename
myfile = open(filename, 'wb')
ftps.retrbinary('RETR %s' % filename, myfile.write)
ftps.close()
標準の ftplib には、ftpes (明示的な ftps) 接続に必要なものがすべて含まれています。暗黙の接続を作成する簡単な方法が見つかりませんでした。
参照: http://docs.python.org/2/library/ftplib.html#ftplib.FTP_TLS
sftp クライアントが使えれば paramiko で提供されているのですが… sftp と ftp over ssl (ftps) は違います…
import paramiko as pm
import socket
# sftp client...
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(20)
sock.connect((hostname, port))
trans = pm.Transport(sock)
trans.connect(hostkey=None ,username=username, password=password, pkey=None)
chan = trans.open_session()
chan.get_pty()
chan.invoke_shell()
sftp = pm.SFTP.from_transport(trans)
私のグーグルは、 ftp over ssl が ftplib で利用できる可能性があることを示していますが、このメカニズムを自分で試したことはありません... FTP_TLS メソッドは python 2.7 でのみ追加されました