ShawnMilo
By: a guest | Feb 9th, 2010 | Syntax:
Python | Size: 1.23 KB | Hits: 65 | Expires: Never
#!/usr/bin/env python
from paramiko import Transport, SFTPClient
"""
Wrap Paramiko's SFTP functionality in an easy-to-use
class; hide the need to initialize a transport object
to make a connection.
"""
class Connection(object):
def __init__(self, server, username, password):
self.transport = Transport(server)
self.transport.connect(username= username, password = password)
self.sftp_session = SFTPClient.from_transport(self.transport)
def listdir(self, path = "."):
return self.sftp_session.listdir(path)
def get_file(self, remote_filename, local_filename):
self.sftp_session.get(remote_filename, local_filename)
return True
def put_file(self, local_filename, remote_filename = None):
if not remote_filename:
remote_filename = local_filename
self.sftp_session.put(local_filename, remote_filename)
return True
def chdir(self, path):
try:
self.sftp_session.chdir(path)
except IOError:
raise ValueError, "Invalid path specified"
return True
def close(self):
self.sftp_session.close()
self.transport.close()