使用 Paramiko 将新文件上传到 SFTP 服务器,而无需覆盖现有文件
Upload new file to SFTP server using Paramiko without having to overwrite an existing file
我正在尝试通过 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()
在下面的调用中,第二个 (remotepath
) 参数指的是文件将存储在服务器上的路径。不需要远程文件实际存在。它将被创建。
sftp.put('/home/abdulkarim/Skripte/data/test.txt', '/home/abdulkarim/test/test1.txt')
强制性警告:请勿使用 AutoAddPolicy
– 您将失去对 MITM attacks by doing so. For a correct solution, see Paramiko "Unknown Server".
的保护
我正在尝试通过 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()
在下面的调用中,第二个 (remotepath
) 参数指的是文件将存储在服务器上的路径。不需要远程文件实际存在。它将被创建。
sftp.put('/home/abdulkarim/Skripte/data/test.txt', '/home/abdulkarim/test/test1.txt')
强制性警告:请勿使用 AutoAddPolicy
– 您将失去对 MITM attacks by doing so. For a correct solution, see Paramiko "Unknown Server".