Package twisted :: Package protocols :: Module ftp
[frames | no frames]

Module twisted.protocols.ftp

An FTP protocol implementation

Maintainer: Jonathan D. Simms
Classes
DTP The Data Transfer Protocol for this FTP-PI instance all dtp_* methods return a deferred
DTPFactory  
DTPFileSender  
FTP Protocol Interpreter for the File Transfer Protocol
FTPAnonymousShell Only works on POSIX platforms at the moment.
FTPClient A Twisted FTP Client
FTPCommand  
FTPDataPortFactory Factory for data connections that use the PORT command
FTPFactory A factory for producing ftp protocol instances
FTPFileListProtocol Parser for standard FTP file listings
FTPRealm  
IDTPFactory An interface for protocol.Factories
IDTPParent An interface for protocols that wish to use a DTP sub-protocol and factory.
IFTPShell An abstraction of the shell commands used by the FTP protocol for a given user account
ProtocolWrapper  
SenderProtocol  

Exceptions
AnonUserDeniedError raised when an anonymous user issues a command that will alter the filesystem
AuthorizationError raised when client authentication fails
BadCmdSequenceError raised when a client sends a series of commands in an illogical sequence
BadResponse  
BogusClientError thrown when a client other than the one we opened this DTP connection for attempts to connect, or a client attempts to get us to connect to an ip that differs from the one where the request came from
ClientDisconnectError  
CmdArgSyntaxError  
CmdNotImplementedError raised when an unimplemented command is given to the server
CmdNotImplementedForArgError  
CmdSyntaxError  
CommandFailed  
ConnectionLost  
DTPError  
FileNotFoundError  
FTPError  
FTPTimeoutError  
IsNotADirectoryError raised when RMD is called on a path that isn't a directory
OperationFailedError raised when a command like rmd or mkdir fails for a reason other than permissions errors
PathBelowTLDError  
PermissionDeniedError  
TLDNotSetInRealmError raised if the tld (root) directory for the FTPRealm was not set before requestAvatar was called
UnexpectedResponse  

Function Summary
  _callWithDefault(default, _f, *_a, **_kw)
  _getFPName(fp)
returns a file object's name attr if it has one, otherwise it returns "<string>"
  _memberGIDs(gid)
returns a list of all gid's that are a member of group with id
  _testPermissions(uid, gid, spath, mode)
checks to see if uid has proper permissions to access path with mode
  cleanPath(path)
  debugDeferred(self, *_)
  decodeHostPort(line)
Decode an FTP response specifying a host and port.
  parsePWDResponse(response)
Returns the path from a response to a PWD command.

Variable Summary
str BAD_CMD_SEQ = '503'
str CANT_OPEN_DATA_CNX = '425'
str CLOSING_DATA_CNX = '226'
str CMD_NOT_IMPLMNTD = '502'
str CMD_NOT_IMPLMNTD_FOR_PARAM = '504'
str CMD_NOT_IMPLMNTD_SUPERFLUOUS = '202'
str CMD_OK = '200.1'
str CNX_CLOSED_TXFR_ABORTED = '426'
str DATA_CNX_ALREADY_OPEN_START_XFR = '125'
str DATA_CNX_OPEN_NO_XFR_IN_PROGRESS = '225'
str DIR_STATUS = '212'
str ENDLN = '\r\n'
str ENTERING_EPSV_MODE = '229'
str ENTERING_PASV_MODE = '227'
str ENTERING_PORT_MODE = '200.3'
str EXCEEDED_STORAGE_ALLOC = '552'
str FILE_STATUS = '213'
str FILE_STATUS_OK_OPEN_DATA_CNX = '150'
str FILENAME_NOT_ALLOWED = '553'
str GOODBYE_MSG = '221'
str HELP_MSG = '214'
str NAME_SYS_TYPE = '215'
str NEED_ACCT_FOR_LOGIN = '332'
str NEED_ACCT_FOR_STOR = '532'
str PAGE_TYPE_UNK = '551'
int PASV = 1                                                                     
int PORT = 2                                                                     
str PWD_REPLY = '257'
str REQ_ACTN_ABRTD_FILE_UNAVAIL = '450'
str REQ_ACTN_ABRTD_INSUFF_STORAGE = '452'
str REQ_ACTN_ABRTD_LOCAL_ERR = '451'
str REQ_ACTN_NOT_TAKEN = '550.5'
str REQ_FILE_ACTN_COMPLETED_OK = '250'
str REQ_FILE_ACTN_PENDING_FURTHER_INFO = '350'
dict RESPONSE = {'150': '150 File status okay; about to open ...
str RESTART_MARKER_REPLY = '100'
str SERVICE_READY_IN_N_MINUTES = '120'
str SVC_CLOSING_CTRL_CNX = '221'
str SVC_NOT_AVAIL_CLOSING_CTRL_CNX = '421.1'
str SVC_READY_FOR_NEW_USER = '220.1'
str SYNTAX_ERR = '500'
str SYNTAX_ERR_IN_ARGS = '501'
str SYS_STATUS_OR_HELP_REPLY = '211'
str TOO_MANY_CONNECTIONS = '421.2'
str TXFR_COMPLETE_OK = '226'
str TYPE_SET_OK = '200.2'
str WELCOME_MSG = '220.2'

Function Details

_getFPName(fp)

returns a file object's name attr if it has one, otherwise it returns "<string>"

_memberGIDs(gid)

returns a list of all gid's that are a member of group with id

_testPermissions(uid, gid, spath, mode='r')

checks to see if uid has proper permissions to access path with mode
Parameters:
uid - numeric user id
           (type=int)
gid - numeric group id
           (type=int)
spath - the path on the server to test
           (type=string)
mode - 'r' or 'w' (read or write)
           (type=string)
Returns:
a True if the uid can access path

decodeHostPort(line)

Decode an FTP response specifying a host and port.
Returns:
a 2-tuple of (host, port).

parsePWDResponse(response)

Returns the path from a response to a PWD command.

Responses typically look like:
   257 "/home/andrew" is current directory.

For this example, I will return '/home/andrew'.

If I can't find the path, I return None.

Variable Details

BAD_CMD_SEQ

Type:
str
Value:
'503'                                                                  

CANT_OPEN_DATA_CNX

Type:
str
Value:
'425'                                                                  

CLOSING_DATA_CNX

Type:
str
Value:
'226'                                                                  

CMD_NOT_IMPLMNTD

Type:
str
Value:
'502'                                                                  

CMD_NOT_IMPLMNTD_FOR_PARAM

Type:
str
Value:
'504'                                                                  

CMD_NOT_IMPLMNTD_SUPERFLUOUS

Type:
str
Value:
'202'                                                                  

CMD_OK

Type:
str
Value:
'200.1'                                                                

CNX_CLOSED_TXFR_ABORTED

Type:
str
Value:
'426'                                                                  

DATA_CNX_ALREADY_OPEN_START_XFR

Type:
str
Value:
'125'                                                                  

DATA_CNX_OPEN_NO_XFR_IN_PROGRESS

Type:
str
Value:
'225'                                                                  

DIR_STATUS

Type:
str
Value:
'212'                                                                  

ENDLN

Type:
str
Value:
'''\r
'''                                                                    

ENTERING_EPSV_MODE

Type:
str
Value:
'229'                                                                  

ENTERING_PASV_MODE

Type:
str
Value:
'227'                                                                  

ENTERING_PORT_MODE

Type:
str
Value:
'200.3'                                                                

EXCEEDED_STORAGE_ALLOC

Type:
str
Value:
'552'                                                                  

FILE_STATUS

Type:
str
Value:
'213'                                                                  

FILE_STATUS_OK_OPEN_DATA_CNX

Type:
str
Value:
'150'                                                                  

FILENAME_NOT_ALLOWED

Type:
str
Value:
'553'                                                                  

GOODBYE_MSG

Type:
str
Value:
'221'                                                                  

HELP_MSG

Type:
str
Value:
'214'                                                                  

NAME_SYS_TYPE

Type:
str
Value:
'215'                                                                  

NEED_ACCT_FOR_LOGIN

Type:
str
Value:
'332'                                                                  

NEED_ACCT_FOR_STOR

Type:
str
Value:
'532'                                                                  

PAGE_TYPE_UNK

Type:
str
Value:
'551'                                                                  

PASV

Type:
int
Value:
1                                                                     

PORT

Type:
int
Value:
2                                                                     

PWD_REPLY

Type:
str
Value:
'257'                                                                  

REQ_ACTN_ABRTD_FILE_UNAVAIL

Type:
str
Value:
'450'                                                                  

REQ_ACTN_ABRTD_INSUFF_STORAGE

Type:
str
Value:
'452'                                                                  

REQ_ACTN_ABRTD_LOCAL_ERR

Type:
str
Value:
'451'                                                                  

REQ_ACTN_NOT_TAKEN

Type:
str
Value:
'550.5'                                                                

REQ_FILE_ACTN_COMPLETED_OK

Type:
str
Value:
'250'                                                                  

REQ_FILE_ACTN_PENDING_FURTHER_INFO

Type:
str
Value:
'350'                                                                  

RESPONSE

Type:
dict
Value:
{'100': '110 MARK yyyy-mmmm',
 '120': '120 service ready in %s minutes',
 '125': '125 Data connection already open, starting transfer',
 '150': '150 File status okay; about to open data connection.',
 '200.1': '200 Command OK',
 '200.2': '200 Type set to %s.',
 '200.3': '200 PORT OK',
 '202': '202 command not implemented, superfluous at this site',
...                                                                    

RESTART_MARKER_REPLY

Type:
str
Value:
'100'                                                                  

SERVICE_READY_IN_N_MINUTES

Type:
str
Value:
'120'                                                                  

SVC_CLOSING_CTRL_CNX

Type:
str
Value:
'221'                                                                  

SVC_NOT_AVAIL_CLOSING_CTRL_CNX

Type:
str
Value:
'421.1'                                                                

SVC_READY_FOR_NEW_USER

Type:
str
Value:
'220.1'                                                                

SYNTAX_ERR

Type:
str
Value:
'500'                                                                  

SYNTAX_ERR_IN_ARGS

Type:
str
Value:
'501'                                                                  

SYS_STATUS_OR_HELP_REPLY

Type:
str
Value:
'211'                                                                  

TOO_MANY_CONNECTIONS

Type:
str
Value:
'421.2'                                                                

TXFR_COMPLETE_OK

Type:
str
Value:
'226'                                                                  

TYPE_SET_OK

Type:
str
Value:
'200.2'                                                                

WELCOME_MSG

Type:
str
Value:
'220.2'                                                                

Generated by Epydoc 2.0 on Sat May 15 20:07:44 2004 http://epydoc.sf.net