https://github.com/meethigher/ftp-server
an FTP service implemented in Java language based on Apache FtpServer 1.2.0 Release — Apache MINA.
https://github.com/meethigher/ftp-server
apache ftp-server ftpserver
Last synced: 4 months ago
JSON representation
an FTP service implemented in Java language based on Apache FtpServer 1.2.0 Release — Apache MINA.
- Host: GitHub
- URL: https://github.com/meethigher/ftp-server
- Owner: meethigher
- License: gpl-2.0
- Created: 2023-10-29T13:33:02.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-25T14:17:57.000Z (7 months ago)
- Last Synced: 2025-01-22T22:31:32.752Z (5 months ago)
- Topics: apache, ftp-server, ftpserver
- Language: Java
- Homepage: https://meethigher.top/blog/2023/learn-ftp/
- Size: 81.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Note: This project is for personal learning only. Please use [Apache FtpServer 1.2.0 Release — Apache MINA](https://mina.apache.org/ftpserver-project/download_1_2.html) for production environment.

# Introduction
ftp-server is an FTP service implemented in Java language based on [Apache FtpServer 1.2.0 Release — Apache MINA](https://mina.apache.org/ftpserver-project/download_1_2.html).
it's very lightweight and easy to use.
# Document
download [release](https://github.com/meethigher/ftp-server/releases), then run
```sh
java -jar ftp-server.jar
```you can configure ftp by configuring **server.properties**.
```properties
port=21
idleSeconds=60
activeLocalPort=20
passivePorts=30000-30005
anonymousLoginEnabled=true
loginFailureDelay=500
maxLogins=1000
maxAnonymousLogins=2
maxLoginFailures=3
maxThreads=0
web.enable=false
web.port=8080
web.username=admin
web.password=admin
```you can perform user management and authorization in the users folder, the configuration file is suffixed with `.properties`
```properties
enabled=true
name=ftpadmin
password=ftpadmin
homeDir=C:/Users/meethigher/Desktop
# indicates the file path with write permission. if it is /ccc-test, it means that there is write permission under the ccc-test folder.
write=/ccc-test
maxConcurrentLogins=5
maxConcurrentLoginsPerIP=1
# bytes/second
maxDownloadRate=1024000
# bytes/second
maxUploadRate=1024000
```