Go to the latest version of this document.

# ``twisted`.`conch`.`ssh`.`filetransfer`.`FileTransferClient``

class documentation

`class FileTransferClient(FileTransferBase): (source)`

Constructor: `FileTransferClient(extData)`

View In Hierarchy

Undocumented

Method | `__init__` | No summary
Method | `connectionLost` | Called when connection to the remote subsystem was lost.
Method | `connectionMade` | Called when a connection is made.
Method | `extendedRequest` | Make an extended request of the server.
Method | `getAttrs` | Return the attributes for the given path.
Method | `gotServerVersion` | Called when the client sends their version info.
Method | `makeDirectory` | Make a directory.
Method | `makeLink` | Create a symbolic link.
Method | `openDirectory` | Open a directory for scanning.
Method | `openFile` | Open a file.
Method | `packet_ATTRS` | Undocumented
Method | `packet_DATA` | Undocumented
Method | `packet_EXTENDED_REPLY` | Undocumented
Method | `packet_HANDLE` | Undocumented
Method | `packet_NAME` | Undocumented
Method | `packet_STATUS` | Undocumented
Method | `packet_VERSION` | Undocumented
Method | `readLink` | Find the root of a set of symbolic links.
Method | `realPath` | Convert any path to an absolute path.
Method | `removeDirectory` | Remove a directory (non-recursively)
Method | `removeFile` | Remove the given file.
Method | `renameFile` | Rename the given file.
Method | `setAttrs` | Set the attributes for the path.
Instance Variable | `counter` | Undocumented
Instance Variable | `extData` | Undocumented
Instance Variable | `openRequests` | Undocumented
Instance Variable | `version` | Undocumented
Method | `_cbOpenHandle` | Callback invoked when an OPEN or OPENDIR request succeeds.
Method | `_cbRealPath` | Undocumented
Method | `_parseRequest` | Undocumented
Method | `_sendRequest` | Send a request and return a deferred which waits for the result.

Inherited from `FileTransferBase`:

Method | `dataReceived` | Called whenever data is received.
Method | `sendPacket` | Undocumented
Class Variable | `packetTypes` | Undocumented
Class Variable | `versions` | Undocumented
Instance Variable | `buf` | Undocumented
Instance Variable | `connected` | Undocumented
Instance Variable | `otherVersion` | Undocumented
Method | `_packAttributes` | Undocumented
Method | `_parseAttributes` | Undocumented
Class Variable | `_log` | Undocumented

Inherited from `Protocol` (via `FileTransferBase`):

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

Inherited from `BaseProtocol` (via `FileTransferBase`, `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `transport` | Undocumented

def __init__(self, extData={}): (source)
overrides `twisted.conch.ssh.filetransfer.FileTransferBase.__init__`

Parameters
extData | a dict of extended_name : extended_data items to be sent to the server.

def connectionLost(self, reason): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.conch.ssh.filetransfer.FileTransferBase.connectionLost`

Called when connection to the remote subsystem was lost.

Any pending requests are aborted.

def connectionMade(self): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.BaseProtocol.connectionMade`

Called when a connection is made.

This may be considered the initializer of the protocol, because it is called when the connection is completed. For clients, this is called once the connection to the server has been established; for servers, this is called after an accept() call stops blocking and a socket has been received. If you need to send any greeting or initial message, do it here.

def extendedRequest(self, request, data): (source)

Make an extended request of the server.

The method returns a Deferred that is called back with the result of the extended request.

Parameters
request:`bytes` | the name of the extended request to make.
data:`bytes` | any other data that goes along with the request.

def getAttrs(self, path, followLinks=0): (source)

Return the attributes for the given path.

This method returns a dictionary in the same format as the attrs argument to openFile or a Deferred that is called back with same.

Parameters
path:`bytes` | the path to return attributes for as a string.
followLinks | a boolean. if it is True, follow symbolic links and return attributes for the real path at the base. if it is False, return attributes for the specified path.

def gotServerVersion(self, serverVersion, extData): (source)

Called when the client sends their version info.

Parameters
serverVersion | an integer representing the version of the SFTP protocol they are claiming.
extData | a dictionary of extended_name : extended_data items. These items are sent by the client to indicate additional features.

def makeDirectory(self, path, attrs): (source)

Make a directory.

This method returns a Deferred that is called back when it is created.

Parameters
path:`bytes` | the name of the directory to create as a string.
attrs | a dictionary of attributes to create the directory with. Its meaning is the same as the attrs in the openFile method.

def makeLink(self, linkPath, targetPath): (source)

Create a symbolic link.

This method returns when the link is made, or a Deferred that returns the same.

Parameters
linkPath:`bytes` | the pathname of the symlink as a string
targetPath:`bytes` | the path of the target of the link as a string.

def openDirectory(self, path): (source)

Open a directory for scanning.

This method returns a Deferred that is called back with an iterable object that has a close() method.

The close() method is called when the client is finished reading from the directory. At this point, the iterable will no longer be used.

The iterable returns triples of the form (filename, longname, attrs) or a Deferred that returns the same. The sequence must support __getitem__, but otherwise may be any 'sequence-like' object.

filename is the name of the file relative to the directory. logname is an expanded format of the filename. The recommended format is: -rwxr-xr-x 1 mjos staff 348911 Mar 25 14:29 t-filexfer 1234567890 123 12345678 12345678 12345678 123456789012

The first line is sample output, the second is the length of the field. The fields are: permissions, link count, user owner, group owner, size in bytes, modification time.

attrs is a dictionary in the format of the attrs argument to openFile.

Parameters
path:`bytes` | the directory to open.

def openFile(self, filename, flags, attrs): (source)

Open a file.

This method returns a `Deferred` that is called back with an object that provides the `ISFTPFile` interface.

Parameters
filename:`bytes` | a string representing the file to open.
flags | an integer of the flags to open the file with, ORed together. The flags and their values are listed at the bottom of this file.

attrs

a list of attributes to open the file with. It is a dictionary, consisting of 0 or more keys. The possible keys are:

        size: the size of the file in bytes
        uid: the user ID of the file as an integer
        gid: the group ID of the file as an integer
        permissions: the permissions of the file with as an integer.
        the bit representation of this field is defined by POSIX.
        atime: the access time of the file as seconds since the epoch.
        mtime: the modification time of the file as seconds since the epoch.
        ext_*: extended attributes.  The server is not required to
        understand this, but it may.

NOTE: there is no way to indicate text or binary files. it is up to the SFTP client to deal with this.

def packet_ATTRS(self, data): (source)

Undocumented

def packet_DATA(self, data): (source)

Undocumented

def packet_EXTENDED_REPLY(self, data): (source)

Undocumented

def packet_HANDLE(self, data): (source)

Undocumented

def packet_NAME(self, data): (source)

Undocumented

def packet_STATUS(self, data): (source)

Undocumented

def packet_VERSION(self, data): (source)

Undocumented

def readLink(self, path): (source)

Find the root of a set of symbolic links.

This method returns the target of the link, or a Deferred that returns the same.

Parameters
path:`bytes` | the path of the symlink to read.

def realPath(self, path): (source)

Convert any path to an absolute path.

This method returns the absolute path as a string, or a Deferred that returns the same.

Parameters
path:`bytes` | the path to convert as a string.

def removeDirectory(self, path): (source)

Remove a directory (non-recursively)

It is an error to remove a directory that has files or directories in it.

This method returns a Deferred that is called back when it is removed.

Parameters
path:`bytes` | the directory to remove.

def removeFile(self, filename): (source)

Remove the given file.

This method returns a Deferred that is called back when it succeeds.

Parameters
filename:`bytes` | the name of the file as a string.

def renameFile(self, oldpath, newpath): (source)

Rename the given file.

This method returns a Deferred that is called back when it succeeds.

Parameters
oldpath:`bytes` | the current location of the file.
newpath:`bytes` | the new file name.

def setAttrs(self, path, attrs): (source)

Set the attributes for the path.

This method returns when the attributes are set or a Deferred that is called back when they are.

Parameters
path:`bytes` | the path to set attributes for as a string.
attrs | a dictionary in the same format as the attrs argument to openFile.

counter: `int` = (source)

Undocumented

extData: `dict` = (source)

Undocumented

openRequests: `dict` = (source)

Undocumented

version = (source)

Undocumented

def _cbOpenHandle(self, handle, handleClass, name): (source)

Callback invoked when an OPEN or OPENDIR request succeeds.

Parameters
handle:`bytes` | The handle returned by the server
handleClass | The class that will represent the newly-opened file or directory to the user (either `ClientFile` or `ClientDirectory`).
name:`bytes` | The name of the file or directory represented by `handle`.

def _cbRealPath(self, result): (source)

Undocumented

def _parseRequest(self, data): (source)

Undocumented

def _sendRequest(self, msg, data): (source)

Send a request and return a deferred which waits for the result.

Parameters
msg:`int` | The request type (e.g., `FXP_READ`).
data:`bytes` | The body of the request.