Build a embedded in-memory FTP server with REST endpoint.
[ TOC ]
Current source code and version is published without license.
If you (somebody) want to use this in his project please contact me.
Afterwards I will grant the use of this code without warranty.
When I find some time to inform myself about the different possible licenses at choosealicense.com
I will probably change to a suitable license.
-
With SSL (default)
-
Start via Gradle
gradle bootrun
-
Execute
curl -k ftps://username:password@localhost:50021
to see content of the/tmp
folder-
To add own credentials use
gradle bootrun --args='--miftp.ftp.user=ftp --miftp.ftp.user=ftp --miftp.user=miftp --miftp.password={bcrypt}$2a$10$5SyjnpMano4Z3LGbWQC9W.ySSsheBZI.7uufzpJ4uKokBGfd.uHau'
-
-
-
The release versions are based on Semantic Versioning 2.0.0.
-
Project is (currently) a mixture of Java and Kotlin
-
The latest release require
Java 8
(or newer) and is build with Gradle.
The logback
configuration supports LOG
level configuration via ENV params.
Therefore the following ENV variables can be set for:
-
MIFTP_LOG_LEVEL (default value=INFO) for setting "de.mirb.project.miftp" logger (base)
-
MIFTP_FTP_LOG_LEVEL (default value=INFO) for setting "org.apache.ftpserver" logger (FTP server)
-
MIFTP_SPRING_LOG_LEVEL (default value=INFO) for setting "org.springframework" logger (base)
Create keystore
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
mvn archetype:generate -DarchetypeGroupId=pl.org.miki -DarchetypeArtifactId=java8-quickstart-archetype -DarchetypeVersion=RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: java8-quickstart-archetype:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: de.mirb.project
[INFO] Parameter: artifactId, Value: mi-ftp-server
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: de.mirb.project
[INFO] Parameter: packageInPathFormat, Value: de/mirb/project
[INFO] Parameter: package, Value: de.mirb.project
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: testLibrary, Value: junit
[INFO] Parameter: groupId, Value: de.mirb.project
[INFO] Parameter: compilerMode, Value: simple
[INFO] Parameter: artifactId, Value: mi-ftp-server
[INFO] project created from Archetype in dir: /Users/michael/Development/Projects/MiProjects/MiFtp/mi-ftp-server