Загрузите новый файл на сервер SFTP с помощью Paramiko без необходимости перезаписывать существующий файл - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь загрузить файл через SFTP на свой сервер. Но вместо того, чтобы просто загружать его, я должен явно указать своему скрипту, какой файл перезаписывать на сервере. Я не знаю, как это изменить.

#!/usr/bin/python3
import paramiko
k = paramiko.RSAKey.from_private_key_file("/home/abdulkarim/.ssh/id_rsa")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print("connecting")
c.connect( hostname = "do-test", username = "abdulkarim", pkey = k )
print("connected")
sftp = c.open_sftp()
sftp.put('/home/abdulkarim/Skripte/data/test.txt', '/home/abdulkarim/test/test1.txt')
c.close()

1 Ответ

2 голосов
/ 17 июня 2020

В приведенном ниже вызове второй параметр (remotepath) указывает путь, по которому файл будет храниться на сервере. Существование удаленного файла не обязательно. Он будет создан.

sftp.put('/home/abdulkarim/Skripte/data/test.txt', '/home/abdulkarim/test/test1.txt')

Обязательное предупреждение: не используйте AutoAddPolicy - при этом вы теряете защиту от MITM атак . Для правильного решения см. Paramiko «Неизвестный сервер» .

...