我已经编写了一个Python的主方法,其中包含许多操作来创建文件。 现在我想要使用SFTP将该文件从本地服务器发送到远程服务器。 请问有没有人可以帮助我添加一个Python方法,该方法将首先执行主方法,然后执行paramiko方法以进行SFTP。 请为我提供一个简单的代码示例。我非常困惑!
我已经编写了一个Python的主方法,其中包含许多操作来创建文件。 现在我想要使用SFTP将该文件从本地服务器发送到远程服务器。 请问有没有人可以帮助我添加一个Python方法,该方法将首先执行主方法,然后执行paramiko方法以进行SFTP。 请为我提供一个简单的代码示例。我非常困惑!
import paramiko
def upload_file(remote_server, ssh_user, ssh_password, local_filepath, remote_path, port_number=22):
sftp = None
transport = None
try:
# Create transport instance and setup SFTP connection
transport = paramiko.Transport((remote_server, port_number))
transport.connect(None, ssh_user, ssh_password)
sftp = paramiko.SFTPClient.from_transport(transport)
# Upload file to remote destination
sftp.put(local_filepath, remote_path)
except Exception as e:
print(f'Failed to transfer files: {e}')
if sftp:
sftp.close()
if transport:
transport.close()
样例调用
upload_file("10.197.15.1", "ssh_user", "ssh_password", "/tmp/myfile.txt", "/home/user/sftp/myfile.txt")
import paramiko
import os
paramiko.util.log_to_file("paramiko.log")
# Open a transport
def sftp_transport():
host,port = "example.com",22
transport = paramiko.Transport((host,port))
# Auth
username,password = "foo","foo"
transport.connect(None,username,password)
# Go!
sftp = paramiko.SFTPClient.from_transport(transport)
# Upload
filepath = "/home/foo.jpg"
localpath = os.path.join('C:\\', 'Users', 'example', 'desktop','example.txt')
sftp.put(localpath,filepath)
# Close
if sftp: sftp.close()
if transport: transport.close()
def write_file():
localpath = os.path.join('C:\\', 'Users', 'example', 'desktop','example.txt')
f = open(localpath, 'w')
f.write("Now the file has some content!")
f.close()
write_file()
sftp_transport()