<?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.SFTPServer</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> <a href="paramiko-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </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 paramiko</a> :: Class SFTPServer </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 >] | <a href="paramiko.SFTPServer-class.html" target="_top">no frames</a>]</span></td></tr> </table> </td> </tr> </table> <!-- ==================== CLASS DESCRIPTION ==================== --> <h1 class="epydoc">Class SFTPServer</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer">source code</a></span></p> <pre class="base-tree"> object --+ | BaseSFTP --+ | object --+ | | | threading._Verbose --+ | | | threading.Thread --+ | | | <a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a> --+ | <strong class="uidshort">SFTPServer</strong> </pre> <hr /> <p>Server-side SFTP subsystem support. Since this is a <a href="paramiko.SubsystemHandler-class.html" class="link">SubsystemHandler</a>, it can be (and is meant to be) set as the handler for <code>"sftp"</code> requests. Use <a href="paramiko.Transport-class.html#set_subsystem_handler" class="link">Transport.set_subsystem_handler</a> to activate this class.</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"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">channel</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">server</span>, <span class="summary-sig-arg">sftp_si</span>=<span class="summary-sig-default"><class 'paramiko.SFTPServerInterface'></span>, <span class="summary-sig-arg">*largs</span>, <span class="summary-sig-arg">**kwargs</span>)</span><br /> The constructor for SFTPServer is meant to be called from within the <a href="paramiko.Transport-class.html" class="link">Transport</a> as a subsystem handler.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#finish_subsystem" class="summary-sig-name">finish_subsystem</a>(<span class="summary-sig-arg">self</span>)</span><br /> Perform any cleanup at the end of a subsystem.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#start_subsystem" class="summary-sig-name">start_subsystem</a>(<span class="summary-sig-arg">self</span>, <span class="summary-sig-arg">name</span>, <span class="summary-sig-arg">transport</span>, <span class="summary-sig-arg">channel</span>)</span><br /> Process an ssh subsystem in server mode.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td colspan="2" class="summary"> <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a></code></b>: <code><a href="paramiko.SubsystemHandler-class.html#get_server">get_server</a></code> </p> <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>: <code>__repr__</code>, <code>getName</code>, <code>isAlive</code>, <code>isDaemon</code>, <code>is_alive</code>, <code>join</code>, <code>run</code>, <code>setDaemon</code>, <code>setName</code>, <code>start</code> </p> <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: <code>__delattr__</code>, <code>__format__</code>, <code>__getattribute__</code>, <code>__hash__</code>, <code>__new__</code>, <code>__reduce__</code>, <code>__reduce_ex__</code>, <code>__setattr__</code>, <code>__sizeof__</code>, <code>__str__</code>, <code>__subclasshook__</code> </p> </td> </tr> </table> <!-- ==================== STATIC METHODS ==================== --> <a name="section-StaticMethods"></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">Static Methods</span></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.SFTPServer-class.html#convert_errno" class="summary-sig-name">convert_errno</a>(<span class="summary-sig-arg">e</span>)</span><br /> Convert an errno value (as from an <code>OSError</code> or <code>IOError</code>) into a standard SFTP result code.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.convert_errno">source code</a></span> </td> </tr> </table> </td> </tr> <tr> <td width="15%" align="right" valign="top" class="summary"> <span class="summary-type"> </span> </td><td class="summary"> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#set_file_attr" class="summary-sig-name">set_file_attr</a>(<span class="summary-sig-arg">filename</span>, <span class="summary-sig-arg">attr</span>)</span><br /> Change a file's attributes on the local filesystem.</td> <td align="right" valign="top"> <span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.set_file_attr">source code</a></span> </td> </tr> </table> </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>threading.Thread</code></b>: <code>daemon</code>, <code>ident</code>, <code>name</code> </p> <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">channel</span>, <span class="sig-arg">name</span>, <span class="sig-arg">server</span>, <span class="sig-arg">sftp_si</span>=<span class="sig-default"><class 'paramiko.SFTPServerInterface'></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_server-pysrc.html">source code</a></span> </td> </tr></table> <p>The constructor for SFTPServer is meant to be called from within the <a href="paramiko.Transport-class.html" class="link">Transport</a> as a subsystem handler. <code>server</code> and any additional parameters or keyword parameters are passed from the original call to <a href="paramiko.Transport-class.html#set_subsystem_handler" class="link">Transport.set_subsystem_handler</a>.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - channel passed from the <a href="paramiko.Transport-class.html" class="link">Transport</a>.</li> <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li> <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 subsystem</li> <li><strong class="pname"><code>sftp_si</code></strong> (class) - a subclass of <a href="paramiko.SFTPServerInterface-class.html" class="link">SFTPServerInterface</a> to use for handling individual requests.</li> </ul></dd> <dt>Overrides: object.__init__ </dt> </dl> </td></tr></table> </div> <a name="convert_errno"></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">convert_errno</span>(<span class="sig-arg">e</span>)</span> <br /><em class="fname">Static Method</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.convert_errno">source code</a></span> </td> </tr></table> <p>Convert an errno value (as from an <code>OSError</code> or <code>IOError</code>) into a standard SFTP result code. This is a convenience function for trapping exceptions in server code and returning an appropriate result.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>e</code></strong> (int) - an errno code, as from <code>OSError.errno</code>.</li> </ul></dd> <dt>Returns: int</dt> <dd>an SFTP error code like SFTP_NO_SUCH_FILE.</dd> </dl> </td></tr></table> </div> <a name="finish_subsystem"></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">finish_subsystem</span>(<span class="sig-arg">self</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source code</a></span> </td> </tr></table> <p>Perform any cleanup at the end of a subsystem. The default implementation just closes the channel.</p> <dl class="fields"> <dt>Overrides: <a href="paramiko.SubsystemHandler-class.html#finish_subsystem">SubsystemHandler.finish_subsystem</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </dl> </td></tr></table> </div> <a name="set_file_attr"></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">set_file_attr</span>(<span class="sig-arg">filename</span>, <span class="sig-arg">attr</span>)</span> <br /><em class="fname">Static Method</em> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.set_file_attr">source code</a></span> </td> </tr></table> <p>Change a file's attributes on the local filesystem. The contents of <code>attr</code> are used to change the permissions, owner, group ownership, and/or modification & access time of the file, depending on which attributes are present in <code>attr</code>.</p> <p>This is meant to be a handy helper function for translating SFTP file requests into local file operations.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to alter (should usually be an absolute path).</li> <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html" class="link">SFTPAttributes</a>) - attributes to change.</li> </ul></dd> </dl> </td></tr></table> </div> <a name="start_subsystem"></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">start_subsystem</span>(<span class="sig-arg">self</span>, <span class="sig-arg">name</span>, <span class="sig-arg">transport</span>, <span class="sig-arg">channel</span>)</span> </h3> </td><td align="right" valign="top" ><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source code</a></span> </td> </tr></table> <p>Process an ssh subsystem in server mode. This method is called on a new object (and in a new thread) for each subsystem request. It is assumed that all subsystem logic will take place here, and when the subsystem is finished, this method will return. After this method returns, the channel is closed.</p> <p>The combination of <code>transport</code> and <code>channel</code> are unique; this handler corresponds to exactly one <a href="paramiko.Channel-class.html" class="link">Channel</a> on one <a href="paramiko.Transport-class.html" class="link">Transport</a>.</p> <dl class="fields"> <dt>Parameters:</dt> <dd><ul class="nomargin-top"> <li><strong class="pname"><code>name</code></strong> - name of the requested subsystem.</li> <li><strong class="pname"><code>transport</code></strong> - the server-mode <a href="paramiko.Transport-class.html" class="link">Transport</a>.</li> <li><strong class="pname"><code>channel</code></strong> - the channel associated with this subsystem request.</li> </ul></dd> <dt>Overrides: <a href="paramiko.SubsystemHandler-class.html#start_subsystem">SubsystemHandler.start_subsystem</a> <dd><em class="note">(inherited documentation)</em></dd> </dt> </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> <a href="paramiko-module.html">Home</a> </th> <!-- Tree link --> <th> <a href="module-tree.html">Trees</a> </th> <!-- Index link --> <th> <a href="identifier-index.html">Indices</a> </th> <!-- Help link --> <th> <a href="help.html">Help</a> </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 Nov 1 22:14:17 2009 </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>