83
83
from paramiko.sftp import (SFTP_FLAG_WRITE, SFTP_FLAG_CREATE,
84
84
SFTP_FLAG_EXCL, SFTP_FLAG_TRUNC,
85
SFTP_OK, CMD_HANDLE, CMD_OPEN)
86
86
from paramiko.sftp_attr import SFTPAttributes
87
87
from paramiko.sftp_file import SFTPFile
810
810
"""Return the stat information for a file."""
811
811
path = self._remote_path(relpath)
813
return self._get_sftp().stat(path)
813
return self._get_sftp().lstat(path)
814
814
except (IOError, paramiko.SSHException), e:
815
815
self._translate_io_exception(e, path, ': unable to stat')
817
def readlink(self, relpath):
818
"""See Transport.readlink."""
819
path = self._remote_path(relpath)
821
return self._get_sftp().readlink(path)
822
except (IOError, paramiko.SSHException), e:
823
self._translate_io_exception(e, path, ': unable to readlink')
825
def symlink(self, source, link_name):
826
"""See Transport.symlink."""
828
conn = self._get_sftp()
829
sftp_retval = conn.symlink(source, link_name)
830
if SFTP_OK != sftp_retval:
831
raise TransportError(
832
'%r: unable to create symlink to %r' % (link_name, source),
835
except (IOError, paramiko.SSHException), e:
836
self._translate_io_exception(e, link_name,
837
': unable to create symlink to %r' % (source))
817
839
def lock_read(self, relpath):
819
841
Lock the given file for shared (read) access.