Я хочу загрузить файл на удаленном сервере с помощью Python. Я хотел бы проверить заранее, если удаленный путь действительно существует, а если нет, его создать. В псевдокоде:
if(remote_path not exist):
create_path(remote_path)
upload_file(local_file, remote_path)
Я думал о выполнении команды в Paramiko для создания пути (например, mkdir -p remote_path
). Я придумал это:
# I didn't test this code
import paramiko, sys
ssh = paramiko.SSHClient()
ssh.connect(myhost, 22, myusername, mypassword)
ssh.exec_command('mkdir -p ' + remote_path)
ssh.close
transport = paramiko.Transport((myhost, 22))
transport.connect(username = myusername, password = mypassword)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(local_path, remote_path)
sftp.close()
transport.close()
Но это решение мне не подходит, потому что я закрываю соединение, а затем снова открываю его. Есть ли лучший способ сделать это?