import paramiko import os class SFTPManager(): def __init__(self, sftp_host, sftp_port, sftp_username, sftp_password): self.sftp_host = sftp_host self.sftp_username = sftp_username self.sftp_password = sftp_password self.sftp_port = sftp_port or 22 # Puerto por defecto: 22 self.ssh_client = None self.sftp_client = None def _SFTPConect(self): self.ssh_client = paramiko.SSHClient() self.ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Acepta automáticamente la clave del host self.ssh_client.connect(self.sftp_host, self.sftp_port, self.sftp_username, self.sftp_password) self.sftp_client = self.ssh_client.open_sftp() def _SFTPDisconnect(self): if self.sftp_client: self.sftp_client.close() #print('SFTP desconectado.') if self.ssh_client: self.ssh_client.close() #print('SSH desconectado.') def uploadFile(self, task, sftp_path): self._SFTPConect() file_name = os.path.basename(task.docsend_Path) pathFTP = os.path.join(sftp_path, file_name) self.sftp_client.put(task.docsend_Path, pathFTP) #print(f'Archivo {task.docsendPath} subido exitosamente a {pathFTP}') self._SFTPDisconnect()