PyBbftp
A Python package that provides an interface to bbFTP.
It is composed of client and server Python/C extension modules (TI05-delivery/trunk/src/python_ext) and a set of Python modules that define the interface to bbftp (TI05-delivery/trunk/lib/python/pybbftp). You can view the auto-generated API documentation at http://home.badc.rl.ac.uk/spascoe/pybbftp (this may move to the trac server in the future).
Overview
The starting point was to use bbFTP in private authentication mode as illustrated in Figure 1. !BbFTP provides an interface for a secure communication between client and server to establish authentication. Customised authentication mechanisms can be built by implementing this interface.
Figure 1: Standard bbFTP in private authentication mode
However, bbFTP relies on UNIX file system permissions to do authorization. The bbFTP source has been extended to provide a second interface, in the style of private_auth, for the purposes of implementing authorization of bbFTP commands.
Figure 2: Addition of the private authorisation interface
These interfaces are bound to python by the python/C extension modules pybbftp.bbftpd and pybbftp.bbftpc. A more object orientated API is exposed to python programs in the pyybbftp.server and pybbftp.client modules. With these modules bbFTP-like applications can be built in python, making use of custom authorisation, authentication and control.
Figure 3: Exposing the bbFTP interfaces in python
pybbftp.server
- start()
- AuthHandler
- authenticate()
- AuthzHandler
- authzControl()
- authzRetr()
- authzSend()
pybbftp.client
- connect()
- close()
- isConnected()
- AuthClientHandler
- docommand()
Attachments
-
bbftp_private.PNG
(9.2 KB) - added by spascoe 15 years ago.
Standard bbFTP in private authentication mode
-
authz_added.PNG
(10.1 KB) - added by spascoe 15 years ago.
Addition of private authorisation interface
-
pybbftp.PNG
(25.5 KB) - added by spascoe 15 years ago.
Exposing the bbFTP interfaces to python