aboutsummaryrefslogtreecommitdiff
path: root/docs/private/paramiko.SFTPServerInterface-class.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/private/paramiko.SFTPServerInterface-class.html')
-rw-r--r--docs/private/paramiko.SFTPServerInterface-class.html744
1 files changed, 744 insertions, 0 deletions
diff --git a/docs/private/paramiko.SFTPServerInterface-class.html b/docs/private/paramiko.SFTPServerInterface-class.html
new file mode 100644
index 0000000..a0bd429
--- /dev/null
+++ b/docs/private/paramiko.SFTPServerInterface-class.html
@@ -0,0 +1,744 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!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"></link>
+</head>
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="center">
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
+ <font size="-1"><b class="breadcrumbs">
+ <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
+ Class&nbsp;SFTPServerInterface
+ </b></font></br>
+ </td>
+ <td><table cellpadding="0" cellspacing="0">
+ <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
+ <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.SFTPServerInterface-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
+ </table></td>
+</tr></table>
+
+<!-- =========== START OF CLASS DESCRIPTION =========== -->
+<h2 class="class">Type SFTPServerInterface</h2>
+
+<pre class="base-tree">
+<a href="__builtin__.object-class.html"><code>object</code></a> --+
+ |
+ <b>SFTPServerInterface</b>
+</pre><br />
+
+<hr/>
+
+<p>This class defines an interface for controlling the behavior of
+paramiko when using the <a href="paramiko.SFTPServer-class.html"
+class="link"><code>SFTPServer</code></a> subsystem to provide an SFTP
+server.</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.
+<hr/>
+
+
+<!-- =========== START OF METHOD SUMMARY =========== -->
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="summary">
+ <th colspan="2">Method Summary</th></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>server</span>,
+ <span class="summary-sig-vararg">*largs</span>,
+ <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
+<br />
+Create a new SFTPServerInterface object.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#canonicalize" class="summary-sig-name"><code>canonicalize</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Return the canonical form of a path on the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#chattr" class="summary-sig-name"><code>chattr</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>,
+ <span class=summary-sig-arg>attr</span>)</span></code>
+<br />
+Change the attributes of a file.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#list_folder" class="summary-sig-name"><code>list_folder</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Return a list of files within a given folder.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Return an <a href="paramiko.SFTPAttributes-class.html"
+class="link"><code>SFTPAttributes</code></a> object for a path on the
+server, or an error code.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>,
+ <span class=summary-sig-arg>attr</span>)</span></code>
+<br />
+Create a new directory with the given attributes.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#open" class="summary-sig-name"><code>open</code></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></code>
+<br />
+Open a file on the server and create a handle for future operations on
+that file.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> str <i>or error code</i>
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Return the target of a symbolic link (or shortcut) on the server.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Delete a file, if possible.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>oldpath</span>,
+ <span class=summary-sig-arg>newpath</span>)</span></code>
+<br />
+Rename (or move) a file.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Remove a directory if it exists.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#session_ended" class="summary-sig-name"><code>session_ended</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
+<br />
+The SFTP server session has just ended, either cleanly or via an
+exception.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#session_started" class="summary-sig-name"><code>session_started</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
+<br />
+The SFTP server session has just started.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<br />
+Return an <a href="paramiko.SFTPAttributes-class.html"
+class="link"><code>SFTPAttributes</code></a> object for a path on the
+server, or an error code.</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1"> int
+</font></td>
+ <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
+ <span class=summary-sig-arg>target_path</span>,
+ <span class=summary-sig-arg>path</span>)</span></code>
+<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></tr>
+<tr bgcolor="#e8f0f8" class="group">
+ <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
+<br />
+x.__hash__() &lt;==&gt; hash(x)</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
+ <span class=summary-sig-arg>S</span>,
+ <span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+helper for pickle</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+helper for pickle</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
+<br />
+x.__repr__() &lt;==&gt; repr(x)</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
+<br />
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
+<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
+ <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
+<br />
+x.__str__() &lt;==&gt; str(x)</td></tr>
+</table><br />
+
+
+<!-- =========== START OF METHOD DETAILS =========== -->
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="details">
+ <th colspan="2">Method Details</th></tr>
+</table>
+
+<a name="__init__"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>server</span>,
+ <span class="sig-vararg">*largs</span>,
+ <span class="sig-kwarg">**kwargs</span>)</span>
+ <br /><i>(Constructor)</i>
+ </h3>
+ Create a new SFTPServerInterface object. This method does nothing by
+ default and is meant to be overridden by subclasses.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>server</b></code> -
+ the server object associated with this channel and SFTP
+ subsystem
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="../private/paramiko.ServerInterface-class.html"
+ class="link"><code>ServerInterface</code></a>)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Overrides:</b></dt>
+ <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="canonicalize"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">canonicalize</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ <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>
+ The default implementation returns <code>os.path.normpath('/' +
+ path)</code>.
+ <dl><dt></dt><dd>
+ </dd></dl>
+</td></tr></table>
+
+<a name="chattr"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><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>
+ 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.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ requested path (relative or absolute) of the file to
+ change.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ <dd><code><b>attr</b></code> -
+ requested attributes to change on the file.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a>)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an error code like <a
+ href="../private/paramiko-module.html#SFTP_OK"
+ class="link"><code>SFTP_OK</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="list_folder"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">list_folder</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ <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"><code>SFTPAttributes</code></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
+ <code>SFTPAttributes.from_stat</code> will usually do what you
+ want.</p>
+ In case of an error, you should return one of the
+ <code>SFTP_*</code> error codes, such as <a
+ href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
+ class="link"><code>SFTP_PERMISSION_DENIED</code></a>.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ the requested path (relative or absolute) to be listed.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ a list of the files in the given folder, using <a
+ href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> objects.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>)</i>
+ </dd>
+ </dl>
+<p><b>Note:</b> 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>
+
+ </dd></dl>
+</td></tr></table>
+
+<a name="lstat"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">lstat</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></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="../private/paramiko.SFTPServerInterface-class.html#stat"
+ class="link"><code>stat</code></a> is the corresponding call that
+ follows symlinks/aliases.)
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ the requested path (relative or absolute) to fetch file
+ statistics for.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an attributes object for the given file, or an SFTP error code
+ (like <a
+ href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
+ class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="mkdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><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>
+ <p>Create a new directory with the given attributes. The
+ <code>attr</code> object may be considered a &quot;hint&quot; and
+ ignored.</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.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ requested path (relative or absolute) of the new folder.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ <dd><code><b>attr</b></code> -
+ requested attributes of the new folder.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a>)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an SFTP error code like <a
+ href="../private/paramiko-module.html#SFTP_OK"
+ class="link"><code>SFTP_OK</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="open"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><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>
+ <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"><code>SFTPHandle</code></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 <a
+ href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
+ class="link"><code>SFTP_PERMISSION_DENIED</code></a> should be
+ returned.</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:
+ <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>
+ 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.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ the requested path (relative or absolute) of the file to be
+ opened.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ <dd><code><b>flags</b></code> -
+ flags or'd together from the <code>os</code> module indicating
+ the requested mode for opening the file.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ <dd><code><b>attr</b></code> -
+ requested attributes of the file if it is newly created.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a>)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ a new <a href="paramiko.SFTPHandle-class.html"
+ class="link"><code>SFTPHandle</code></a> <i>or error code</i>.
+ &#64;rtype <a href="paramiko.SFTPHandle-class.html"
+ class="link"><code>SFTPHandle</code></a>
+ </dd>
+ </dl>
+<p><b>Note:</b> 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>
+
+ </dd></dl>
+</td></tr></table>
+
+<a name="readlink"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">readlink</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ 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.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ path (relative or absolute) of the symbolic link.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ the target path of the symbolic link, or an error code like <a
+ href="../private/paramiko-module.html#SFTP_NO_SUCH_FILE"
+ class="link"><code>SFTP_NO_SUCH_FILE</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str <i>or error code</i>)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="remove"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">remove</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ Delete a file, if possible.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ the requested path (relative or absolute) of the file to
+ delete.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an SFTP error code like <a
+ href="../private/paramiko-module.html#SFTP_OK"
+ class="link"><code>SFTP_OK</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="rename"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><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>
+ 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.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>oldpath</b></code> -
+ the requested path (relative or absolute) of the existing
+ file.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ <dd><code><b>newpath</b></code> -
+ the requested new path of the file.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an SFTP error code like <a
+ href="../private/paramiko-module.html#SFTP_OK"
+ class="link"><code>SFTP_OK</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+<p><b>Note:</b> 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>
+
+ </dd></dl>
+</td></tr></table>
+
+<a name="rmdir"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">rmdir</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ Remove a directory if it exists. The <code>path</code> should refer
+ to an existing, empty folder -- otherwise this method should return an
+ error.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ requested path (relative or absolute) of the folder to
+ remove.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an SFTP error code like <a
+ href="../private/paramiko-module.html#SFTP_OK"
+ class="link"><code>SFTP_OK</code></a>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="session_ended"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">session_ended</span>(<span class=sig-arg>self</span>)</span>
+ </h3>
+ 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.
+ <dl><dt></dt><dd>
+ </dd></dl>
+</td></tr></table>
+
+<a name="session_started"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">session_started</span>(<span class=sig-arg>self</span>)</span>
+ </h3>
+ 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.
+ <dl><dt></dt><dd>
+ </dd></dl>
+</td></tr></table>
+
+<a name="stat"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>,
+ <span class=sig-arg>path</span>)</span>
+ </h3>
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></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="../private/paramiko.SFTPServerInterface-class.html#lstat"
+ class="link"><code>lstat</code></a> is the corresponding call that
+ doesn't follow symlinks/aliases.)
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>path</b></code> -
+ the requested path (relative or absolute) to fetch file
+ statistics for.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an attributes object for the given file, or an SFTP error code
+ (like <a
+ href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
+ class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=<a href="paramiko.SFTPAttributes-class.html"
+ class="link"><code>SFTPAttributes</code></a> <i>or error
+ code</i>)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+
+<a name="symlink"></a>
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
+ <h3><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>
+ Create a symbolic link on the server, as new pathname
+ <code>path</code>, with <code>target_path</code> as the target of the
+ link.
+ <dl><dt></dt><dd>
+ <dl><dt><b>Parameters:</b></dt>
+ <dd><code><b>target_path</b></code> -
+ path (relative or absolute) of the target for this new
+ symbolic link.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ <dd><code><b>path</b></code> -
+ path (relative or absolute) of the symbolic link to
+ create.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=str)</i>
+ </dd>
+ </dl>
+ <dl><dt><b>Returns:</b></dt>
+ <dd>
+ an error code like <code>SFTP_OK</code>.
+ <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ (type=int)</i>
+ </dd>
+ </dl>
+ </dd></dl>
+</td></tr></table>
+<br />
+
+
+<!-- =========== START OF NAVBAR =========== -->
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="center">
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
+ <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
+ <td align="right"><a href="http://epydoc.sourceforge.net"
+ ><font size="-2">http://epydoc.sf.net</font></a></td>
+ </tr>
+</table>
+</body>
+</html>