FTPS

9 views
Skip to first unread message

mraha...@gmail.com

unread,
Apr 26, 2022, 8:07:54 AM4/26/22
to Python Brasil
Bom dia, 

Preciso acessar um endereço FTPS, não consegui acessar de  nenhuma das formas   abaixo
:
from ftplib import FTP

 ftp = FTP(host=host, 990)
 ftp.login(usuario,senha)
 ftp.set_pasv(False)
 ftp.cwd('/pasta')
    # Get All Files
  files = ftp.nlst()

2º opção
    ssh = paramiko.SSHClient()
   
    ssh.set_missing_host_key_policy(
                paramiko.AutoAddPolicy())
    ssh.connect(hostname = ''+str(endereco)+'', port='990', username =' ''+str(Usuario)+'',' password =' ''+str(senha)+'')
    sftp = ssh.open_sftp()

    ftps = FTP_TLS(host = host , user = usuario, passwd = senha, acct = '' , keyfile = None , certfile = None , context = None , timeout = None , source_address = None)
    ftps.set_debuglevel(2)
    ftps.ssl_version = ssl.PROTOCOL_TLS
    ftps.set_pasv(False)
   
    ftps.prot_p()
    ftps.cwd('/pasta')
    files = ftps.nlst()

Nenhumas das alternativas consegui a conectar ftps, a ultima gera o seguinte erro:

    self.connect(host)
  File "C:\Program Files\Python38\lib\ftplib.py", line 152, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "C:\Program Files\Python38\lib\socket.py", line 808, in create_connection
    raise err
  File "C:\Program Files\Python38\lib\socket.py", line 796, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Alguém alma boa pode me ajudar? ja pedia até pra nossa senhora dos apertadores de tecla.

Grato desde já

Marcel Rahal

Linux - Junior Polegato

unread,
Apr 26, 2022, 12:04:11 PM4/26/22
to python...@googlegroups.com
Olá!

        Não uso Windows, mas veja se consegue acessar com WinSCP (ou ssh no terminal), se conseguir acesso ou alguma mensagem que tem acesso mas está bloqueado, você deverá utilizar SFTP e não FTPS, aí segue exemplo:

[https://stackoverflow.com/questions/432385/sftp-in-python-platform-independent]
import paramiko

host = "THEHOST.com"                    #hard-coded
port = 22
transport = paramiko.Transport((host, port))

password = "THEPASSWORD"                #hard-coded
username = "THEUSERNAME"                #hard-coded
transport.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(transport)

import sys
path = './THETARGETDIRECTORY/' + sys.argv[1]    #hard-coded
localpath = sys.argv[1]
sftp.put(localpath, path)

sftp.close()
transport.close()
print 'Upload done.'

        No caso de ser FTPS, aí sim utilizar FTP_TLS.


-- 

[]'s

Junior Polegato
Reply all
Reply to author
Forward
0 new messages