<?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>&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;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
            >]&nbsp;|&nbsp;<a href="paramiko.SFTPServer-class.html"
            target="_top">no&nbsp;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&nbsp;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>&quot;sftp&quot;</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">&nbsp;</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">&lt;class 'paramiko.SFTPServerInterface'&gt;</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&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.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&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.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&nbsp;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&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.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&nbsp;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">&lt;class 'paramiko.SFTPServerInterface'&gt;</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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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&nbsp;code</a></span>&nbsp;
    </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 &amp; 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&nbsp;code</a></span>&nbsp;
    </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>&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 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>