© www.cellspark.com -
All products |
FtpGoServer is a simple, fast and very small
(10K) Java FTP server that can be used on your PC, Mac or Linux machine to allow remote
FTP access to a selected part of a computer's file system. Features include:
The product was primarily designed for access to files from a browser but any FTP client
such as FTP-Go can be used to login, download, upload and manipulate file storage.
- Intuitive graphical user interface
- One click startup with no configuring required
- Read only or read/write with anonymous access or based on passwords.
- Constant metering of total downloads and uploads in Megabytes
- Exposure of only a user designated portion of the file system
- Platform independent Java code
- No restrictions on number of simultaneous users
- Perfect for remote access through Internet Explorer, Netscape, Firefox or other browsers
- Warning at start up if no password is set for write access.
- 10K runtime file
Links for FtpGoServer :
- Commands supported are USER, PASS, SYST, PWD, PORT, PASV, LIST, STOR, RETR, MKD, CWD,
SIZE, CDUP, DELE, RMD, TYPE, RNFR, RNTO and QUIT.
- The apparent file system root for clients is set at startup. This is the only setting that is kept on disk and that is
remembered between sessions.
- The CWD command is not allowed to make the working directory anything that is not
below the root or is the root itself.
- The CDUP command will stop at the root and cannot go above it.
- TYPE commands always get a positive response but have no meaning.
All data transfers will occur in binary (TYPE I) format except for output from the LIST
command which is in the default Ascii (TYPE A) format.
- If no passwords are set then the PASS command has no meaning but still gets a positive response.
- The USER command always gets a positive response but has no meaning, security is checked with PASS only.
- RMD can only remove empty directories.
- Passwords are entered at runtime and are never stored on disk.
- The PWD command response is the virtual path name relative to the assigned root in the
local file system.
The local root itself is designated as "/". Full local pathnames are never returned.
Further discussion of file referencing
As mentioned, only data in or below the local designated root is available through the server. The product
converts any file or directory reference to a fully specified (canonical) unique path for the platform and then checks that the
root path prefixes it. Furthermore, before any data access takes place, local file system read/write permissions
Simultaneous reads should cause no problems however there is no explicit file locking done
when a file is being written to. The underlying platform file system will determine
how conflicts are resolved. If a file can't be opened for one operation
because it is being used for another purpose by another user
then an exception will likely be thrown. This exception will be
caught by the server code and the connection attempting the open will be closed.
The only logging of activity that takes place while the server is running is the totals of
uploads and downloads (shown in Megabytes). Additionally the Java console, if it's open,
will show any error conditions that are occurring and this can aid problem solving.
The server uses the default settings for all Java sockets. The control socket can optionally have a time out
set so that after no control channel activity for 20 minutes, a session will be ended by the sever.
Character encoding for reads and writes on the control socket are explicitly set to "US-ASCII".
A lot of objects, mainly Strings, are created during an FTP session. Garbage collection is requested
after a LIST command has been serviced and when an individual login session ends and that thread exits.
Installing Sun's free Java runtime
To run FtpGoServer you will need to install Java 2 which
is a free download from Sun.
Double click the "FtpGoServer.jar" file to start the software after installing Java or
use the command line "java -jar FtpGoServer.jar".
Source code for FtpGoServer
Source code is available for USD550 on an "as is" basis for incorporation into other products
and payable by credit card. Purchase is conditional on acceptance of the licensing terms