使用Paramiko将新文件上传到SFTP服务器,而不必覆盖现有文件

时间:2020-06-17 08:51:02

标签: python sftp paramiko

我正在尝试通过SFTP将文件上传到服务器。但是,我不仅要上传它,还必须明确告诉skript要在服务器上覆盖哪些文件。我不知道该如何改变。

#!/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 个答案:

答案 0 :(得分:2)

在下面的调用中,第二个(remotepath)参数指向文件将存储在服务器上的路径。不需要远程文件实际存在。它将被创建。

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

强制性警告:请勿使用AutoAddPolicy –这样做会失去对MITM attacks的保护。有关正确的解决方案,请参见Paramiko "Unknown Server"