aboutsummaryrefslogtreecommitdiff
path: root/docs/paramiko.SFTPServerInterface-class.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/paramiko.SFTPServerInterface-class.html')
-rw-r--r--docs/paramiko.SFTPServerInterface-class.html976
1 files changed, 976 insertions, 0 deletions
diff --git a/docs/paramiko.SFTPServerInterface-class.html b/docs/paramiko.SFTPServerInterface-class.html
new file mode 100644
index 0000000..df785ad
--- /dev/null
+++ b/docs/paramiko.SFTPServerInterface-class.html
@@ -0,0 +1,976 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>paramiko.SFTPServerInterface</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
+ Class&nbsp;SFTPServerInterface
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >]&nbsp;|&nbsp;<a href="paramiko.SFTPServerInterface-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPServerInterface</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPServerInterface">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SFTPServerInterface</strong>
+</pre>
+
+<hr />
+<p>This class defines an interface for controlling the behavior of
+ paramiko when using the <a href="paramiko.SFTPServer-class.html"
+ class="link">SFTPServer</a> subsystem to provide an SFTP server.</p>
+ <p>Methods on this class are called from the SFTP session's thread, so
+ you can block as long as necessary without affecting other sessions (even
+ other SFTP sessions). However, raising an exception will usually cause
+ the SFTP session to abruptly end, so you will usually want to catch
+ exceptions and return an appropriate error code.</p>
+ <p>All paths are in string form instead of unicode because not all SFTP
+ clients &amp; servers obey the requirement that paths be encoded in
+ UTF-8.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Instance Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">server</span>,
+ <span class="summary-sig-arg">*largs</span>,
+ <span class="summary-sig-arg">**kwargs</span>)</span><br />
+ Create a new SFTPServerInterface object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#canonicalize" class="summary-sig-name">canonicalize</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the canonical form of a path on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#chattr" class="summary-sig-name">chattr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Change the attributes of a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#list_folder" class="summary-sig-name">list_folder</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return a list of files within a given folder.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#lstat" class="summary-sig-name">lstat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or
+ an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#mkdir" class="summary-sig-name">mkdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Create a new directory with the given attributes.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#open" class="summary-sig-name">open</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">flags</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Open a file on the server and create a handle for future operations
+ on that file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#readlink" class="summary-sig-name">readlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the target of a symbolic link (or shortcut) on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#remove" class="summary-sig-name">remove</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Delete a file, if possible.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#rename" class="summary-sig-name">rename</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">oldpath</span>,
+ <span class="summary-sig-arg">newpath</span>)</span><br />
+ Rename (or move) a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#rmdir" class="summary-sig-name">rmdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Remove a directory if it exists.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#session_ended" class="summary-sig-name">session_ended</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ The SFTP server session has just ended, either cleanly or via an
+ exception.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#session_started" class="summary-sig-name">session_started</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ The SFTP server session has just started.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#stat" class="summary-sig-name">stat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or
+ an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#symlink" class="summary-sig-name">symlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">target_path</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Create a symbolic link on the server, as new pathname
+ <code>path</code>, with <code>target_path</code> as the target of the
+ link.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Properties</span></td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td align="left" colspan="2" class="table-header">
+ <span class="table-header">Method Details</span></td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">server</span>,
+ <span class="sig-arg">*largs</span>,
+ <span class="sig-arg">**kwargs</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new SFTPServerInterface object. This method does nothing by
+ default and is meant to be overridden by subclasses.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a>) - the server object associated with this channel and SFTP subsystem</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="canonicalize"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">canonicalize</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the canonical form of a path on the server. For example, if
+ the server's home folder is <code>/home/foo</code>, the path
+ <code>&quot;../betty&quot;</code> would be canonicalized to
+ <code>&quot;/home/betty&quot;</code>. Note the obvious security issues:
+ if you're serving files only from a specific folder, you probably don't
+ want this method to reveal path names outside that folder.</p>
+ <p>You may find the python methods in <code>os.path</code> useful,
+ especially <code>os.path.normpath</code> and
+ <code>os.path.realpath</code>.</p>
+ <p>The default implementation returns <code>os.path.normpath('/' +
+ path)</code>.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="chattr"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">chattr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the attributes of a file. The <code>attr</code> object will
+ contain only those fields provided by the client in its request, so you
+ should check for the presence of fields before using them.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the file to change.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes to change on the file.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="list_folder"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">list_folder</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a list of files within a given folder. The <code>path</code>
+ will use posix notation (<code>&quot;/&quot;</code> separates folder
+ names) and may be an absolute or relative path.</p>
+ <p>The list of files is expected to be a list of <a
+ href="paramiko.SFTPAttributes-class.html" class="link">SFTPAttributes</a>
+ objects, which are similar in structure to the objects returned by
+ <code>os.stat</code>. In addition, each object should have its
+ <code>filename</code> field filled in, since this is important to a
+ directory listing and not normally present in <code>os.stat</code>
+ results. The method <a
+ href="paramiko.SFTPAttributes-class.html#from_stat"
+ class="link">SFTPAttributes.from_stat</a> will usually do what you
+ want.</p>
+ <p>In case of an error, you should return one of the <code>SFTP_*</code>
+ error codes, such as SFTP_PERMISSION_DENIED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to be listed.</li>
+ </ul></dd>
+ <dt>Returns: list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>a list of the files in the given folder, using <a
+ href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> objects.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ You should normalize the given <code>path</code> first (see the
+ <code>os.path</code> module) and check appropriate permissions
+ before returning the list of files. Be careful of malicious
+ clients attempting to use relative paths to escape restricted
+ folders, if you're doing a direct translation from the SFTP server
+ path to your local filesystem.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="lstat"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">lstat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or an
+ error code. If your server supports symbolic links (also known as
+ &quot;aliases&quot;), you should <i>not</i> follow them -- instead, you
+ should return data on the symlink or alias itself. (<a
+ href="paramiko.SFTPServerInterface-class.html#stat" class="link">stat</a>
+ is the corresponding call that follows symlinks/aliases.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to fetch file
+ statistics for.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>an attributes object for the given file, or an SFTP error code
+ (like SFTP_PERMISSION_DENIED).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mkdir"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">mkdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new directory with the given attributes. The
+ <code>attr</code> object may be considered a &quot;hint&quot; and
+ ignored.</p>
+ <p>The <code>attr</code> object will contain only those fields provided
+ by the client in its request, so you should use <code>hasattr</code> to
+ check for the presense of fields before using them. In some cases, the
+ <code>attr</code> object may be completely empty.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the new folder.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes of the new folder.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">open</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">flags</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open a file on the server and create a handle for future operations on
+ that file. On success, a new object subclassed from <a
+ href="paramiko.SFTPHandle-class.html" class="link">SFTPHandle</a> should
+ be returned. This handle will be used for future operations on the file
+ (read, write, etc). On failure, an error code such as
+ SFTP_PERMISSION_DENIED should be returned.</p>
+ <p><code>flags</code> contains the requested mode for opening (read-only,
+ write-append, etc) as a bitset of flags from the <code>os</code>
+ module:</p>
+ <ul>
+ <li>
+ <code>os.O_RDONLY</code>
+ </li>
+ <li>
+ <code>os.O_WRONLY</code>
+ </li>
+ <li>
+ <code>os.O_RDWR</code>
+ </li>
+ <li>
+ <code>os.O_APPEND</code>
+ </li>
+ <li>
+ <code>os.O_CREAT</code>
+ </li>
+ <li>
+ <code>os.O_TRUNC</code>
+ </li>
+ <li>
+ <code>os.O_EXCL</code>
+ </li>
+ </ul>
+ <p>(One of <code>os.O_RDONLY</code>, <code>os.O_WRONLY</code>, or
+ <code>os.O_RDWR</code> will always be set.)</p>
+ <p>The <code>attr</code> object contains requested attributes of the file
+ if it has to be created. Some or all attribute fields may be missing if
+ the client didn't specify them.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) of the file to be
+ opened.</li>
+ <li><strong class="pname"><code>flags</code></strong> (int) - flags or'd together from the <code>os</code> module indicating
+ the requested mode for opening the file.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes of the file if it is newly created.</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>a new <a href="paramiko.SFTPHandle-class.html"
+ class="link">SFTPHandle</a> <i>or error code</i>. @rtype <a
+ href="paramiko.SFTPHandle-class.html" class="link">SFTPHandle</a></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ The SFTP protocol defines all files to be in &quot;binary&quot;
+ mode. There is no equivalent to python's &quot;text&quot; mode.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="readlink"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">readlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the target of a symbolic link (or shortcut) on the server. If
+ the specified path doesn't refer to a symbolic link, an error should be
+ returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path (relative or absolute) of the symbolic link.</li>
+ </ul></dd>
+ <dt>Returns: str <i>or error code</i></dt>
+ <dd>the target path of the symbolic link, or an error code like
+ SFTP_NO_SUCH_FILE.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="remove"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">remove</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Delete a file, if possible.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) of the file to delete.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="rename"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">rename</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">oldpath</span>,
+ <span class="sig-arg">newpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Rename (or move) a file. The SFTP specification implies that this
+ method can be used to move an existing file into a different folder, and
+ since there's no other (easy) way to move files via SFTP, it's probably a
+ good idea to implement &quot;move&quot; in this method too, even for
+ files that cross disk partition boundaries, if at all possible.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>oldpath</code></strong> (str) - the requested path (relative or absolute) of the existing file.</li>
+ <li><strong class="pname"><code>newpath</code></strong> (str) - the requested new path of the file.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ You should return an error if a file with the same name as
+ <code>newpath</code> already exists. (The rename operation should
+ be non-desctructive.)
+ </p>
+</div></td></tr></table>
+</div>
+<a name="rmdir"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">rmdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove a directory if it exists. The <code>path</code> should refer
+ to an existing, empty folder -- otherwise this method should return an
+ error.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the folder to remove.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="session_ended"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">session_ended</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The SFTP server session has just ended, either cleanly or via an
+ exception. This method is meant to be overridden to perform any
+ necessary cleanup before this <code>SFTPServerInterface</code> object is
+ destroyed.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="session_started"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">session_started</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The SFTP server session has just started. This method is meant to be
+ overridden to perform any necessary setup before handling callbacks from
+ SFTP operations.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="stat"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">stat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or an
+ error code. If your server supports symbolic links (also known as
+ &quot;aliases&quot;), you should follow them. (<a
+ href="paramiko.SFTPServerInterface-class.html#lstat"
+ class="link">lstat</a> is the corresponding call that doesn't follow
+ symlinks/aliases.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to fetch file
+ statistics for.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>an attributes object for the given file, or an SFTP error code
+ (like SFTP_PERMISSION_DENIED).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="symlink"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">symlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">target_path</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a symbolic link on the server, as new pathname
+ <code>path</code>, with <code>target_path</code> as the target of the
+ link.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>target_path</code></strong> (str) - path (relative or absolute) of the target for this new symbolic
+ link.</li>
+ <li><strong class="pname"><code>path</code></strong> (str) - path (relative or absolute) of the symbolic link to create.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an error code like <code>SFTP_OK</code>.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Tree link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Index link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <!-- Help link -->
+ <th>&nbsp;&nbsp;&nbsp;<a
+ href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:29 2008
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>