Apache Incubator FTPServer

the Incubator site
 
   

Apache FtpServer

PDF
PDF

FTP server based on Apache Avalon

by Rana Bhattacharyya

Overview

FtpServer is a server component for Avalon Phoenix that allows remote FTP client to attach and download files. The client software can be any type of FTP client written in any language. The criteria for eligibility is RFC compliance.

The server uses several components. Some of the components have multiple implementations. For example user management has implementations that will use LDAP, JDBC and Cornerstone's Store facility for storage.

The server has a management console (GUI) that can connect over RMI to the server.

Features

  1. 100% pure Java, free, open source resumable FTP server!!!
  2. Multi platform support and multithreaded design.
  3. User virtual directory, write permission, idle time-out and upload/download bandwidth limitation support.
  4. You can monitor all the user activities.
  5. Anonymous login support.
  6. Both upload and download files are resumable.
  7. Handles both ASCII and binary data transfers.
  8. IP restriction support. You can use a limited set of regular expressions (*?[^-]) to specify the allowed/banned IPs.
  9. The server reloads the user data at a regular interval if necessary.
  10. Database and LDAP can be used to store user data.
  11. Default users admin/admin and anonymous will be created by the server when you start it for the first time.
  12. New user managers can be added very easily by adding new user manager.
  13. Supports SITE commands. Use SITE HELP to get the available commands.

Components

The ftp server consists of several components. The component implementations and dependencies are declared in ftp-assembly.xml file.

Name Description
thread-manager Manages a set of thread pools
sockets A service to manage the socket factories
connections This is the service through which connection management occurs.
objectstorage Manages object repository.
user-manager Handles all ftp server user management.
ip-restrictor It allows/bans the specified IPs depending on the configuration.
ftp-server This is the ftp server starting point.

Name> Interfaces
thread-manager org.apache.avalon.cornerstone.services.threads.ThreadManager
sockets org.apache.avalon.cornerstone.services.sockets.SocketManager
connections org.apache.avalon.cornerstone.services.connection.ConnectionManager
objectstorage org.apache.avalon.cornerstone.services.store.Store
user-manager org.apache.ftpserver.usermanager.UserManagerInterface
ip-restrictor org.apache.ftpserver.ip.IpRestrictorInterface
ftp-server org.apache.ftpserver.ip.FtpServerInterface

Name Dependency
connections thread-manager
user-manager objectstorage (if we use object store based user manager)
ftp-server sockets, connections, ip-restrictor, user-manager

Valid HTML 4.01!Valid CSS!Built with Apache Forrest logo