Featureless FTP server
This is a very simple FTP server. At first it's aimed to simply provide a full-Node implementation of FTP server to be embedded for Unit Testing purpose.
It's currently highly experimental and could crash anytime. It could become a real FTP server if you want to contribute a bit ;) Don't be afraid: FTP protocol is quite simple.
# Using NPMnpm install ftp-server
Or from source:
# Install from sources...git clone git://github.com/naholyr/node-ftp-server.git ftp-servercd ftp-servernpm link# ...Then in your projectnpm link ftp-server
You can run unit tests:
# From your project where ftp-server has been installed as a modulenpm test ftp-server# Or directly from ftp-servernpm test
Example: Simply serve a given directory:
var ftpd = require'ftp-server'// Path to your FTP rootftpdfsOptionsroot = '/path/to/ftp-root'// Start listening on port 21 (you need to be root for ports < 1024)ftpdlisten21
Just look at the code. I'll fully document the ways to extend the server with additional features when it's at least more stable.
Note that the original implementation I based my work on was @billywhizz 's from GitHub.
- Add support for rename commands
- Better implementation of
NLSTto be cross-platform
- Add support for
RESTcommand (restart an interrupted download)
- Maybe wrap all this stuff in a class or at least a function with options (like what FS we'll use)
- Add better documentation on how to extend server (add "features") or new FS wrappers
- Implement MemoryFS
- Support authentication from config or even from database
- Implement all the RFCs from FTP protocol