https://github.com/qingstor/qsftpd
A FTP server that persists all data to QingStor Object Storage.
https://github.com/qingstor/qsftpd
ftp qingstor qsftpd server
Last synced: 5 months ago
JSON representation
A FTP server that persists all data to QingStor Object Storage.
- Host: GitHub
- URL: https://github.com/qingstor/qsftpd
- Owner: qingstor
- License: apache-2.0
- Created: 2017-04-10T11:17:14.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-01-10T14:26:15.000Z (about 2 years ago)
- Last Synced: 2025-05-30T02:38:45.536Z (8 months ago)
- Topics: ftp, qingstor, qsftpd, server
- Language: Go
- Homepage:
- Size: 81.1 KB
- Stars: 22
- Watchers: 1
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# qsftpd
[](https://travis-ci.org/yunify/qsftpd)
[](https://goreportcard.com/report/github.com/yunify/qsftpd)
[](https://github.com/yunify/qsftpd/blob/master/LICENSE)
A FTP server that persists all data to QingStor Object Storage.
## Usage
``` bash
$ 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.
``` bash
$ 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](https://tools.ietf.org/html/rfc5797))._
## References
- [QingStor Documentation](https://docsv4.qingcloud.com/user_guide/storage/object_storage/intro/product/)
- [QingStor Guide](https://docsv4.qingcloud.com/user_guide/storage/object_storage/)
- [QingStor APIs](https://docsv4.qingcloud.com/user_guide/storage/object_storage/api/)
- [FTP Command and Extension Registry](https://tools.ietf.org/html/rfc5797)
## Statement
This project is highly inspired by [`fclairamb/ftpserver`](https://github.com/fclairamb/ftpserver) which is a fork of [`andrewarrow/paradise_ftp`](https://github.com/andrewarrow/paradise_ftp).
Thanks to [Andrew Arrow](andrew@0x7a69.com) and [Florent Clairambault](florent@clairambault.fr), and the original license can be found [here](./license.txt).
## LICENSE
The Apache License (Version 2.0, January 2004).