wiki:PyBbftp

Version 9 (modified by spascoe, 13 years ago) (diff)

--

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 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 Addition of 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 Exposing the bbFTP interfaces to python (Click image to view)

pybbftp.server

  • start()
  • AuthHandler
    • authenticate()
  • AuthzHandler
    • authzControl()
    • authzRetr()
    • authzSend()

pybbftp.client

  • connect()
  • close()
  • isConnected()
  • AuthClientHandler
  • docommand()

Attachments