/qsftpd

A FTP server that persists all data to QingStor Object Storage.

Primary LanguageGoApache License 2.0Apache-2.0

qsftpd

Build Status Go Report Card License

A FTP server that persists all data to QingStor Object Storage.

Usage

$ qsftpd --help
A FTP server that persists all data to QingStor Object Storage.

Usage:
  qsftpd [flags]

Flags:
  -c, --config string   Specify config file (default "qsftpd.yaml")
  -h, --help            help for qsftpd
  -v, --version         Show version

Create configuration

Here's an example config file named qsftpd.yaml.example in the project root directory, copy it to qsftpd.yaml and change the settings.

Run qsftpd

Run the FTP server.

$ qsftpd -c path/to/your/config.yaml
[2017-04-12T03:24:40.541Z #2527]  INFO -- : Listening... 127.0.0.1:21
[2017-04-12T03:24:40.541Z #2527]  INFO -- : Starting...
[2017-04-12T03:24:49.330Z #2527]  INFO -- : FTP Client connected: ftp.connected, id: 76e209d6a89448279e947a7babe0097d, RemoteAddr: 127.0.0.1:51788, Total: 1
......

Note: When you upload large files, please set the timeout time of FTP client long enough to avoid connection disruption.

Not Supported Commands

Currently, the commands listed below are not supported. You can submit issue to request new features.

Command Description
ABOR Abort
ACCT Account
ADAT Authentication / Security Data
CCC Clear Command Channel
CONF Confidentiality Protected Command
ENC Privacy Protected Command
EPRT Extended Port
HELP Help
LANG Language (for Server Messages)
MIC Integrity Protected Command
MLSD List Directory (for machine)
MLST List Single Object
MODE Transfer Mode
REIN Reinitialize
SMNT Structure Mount
STOU Store Unique
STRU File Structure

Note: All FTP commands can be found here (https://tools.ietf.org/html/rfc5797).

References

Statement

This project is highly inspired by fclairamb/ftpserver which is a fork of andrewarrow/paradise_ftp.

Thanks to Andrew Arrow and Florent Clairambault, and the original license can be found here.

LICENSE

The Apache License (Version 2.0, January 2004).