File Downloader is a simple spring boot app, which supports download of large files in http, ftp and sftp requests.
- Resumable Http Requests.
- FTP and SFTP channels to write directly to the disk instead of keeping in memory.
- Automatic Retryable downloads on fail (Currently after fixed interval).
- Downloads the file asynchronously.
- Junits and coverage
- Adding Schedulers to download files by FCFS, server speed , file size.
- Downloading files by multiple parts, instead as single file.
- Fine Tune the application.
FileDownnloder uses a number of open source projects to work properly:
- Spring Boot - runs stand-alone, production-grade Spring based Applications
- FTP Client - Client to download the ftp files
- JSch - JSch allows you to connect to an sshd server and use port forwarding, X11 forwarding, file transfer, etc.
FileDownnloder requires Java 8+ to run.
Install the dependencies and devDependencies and start the server.
$ cd filedownloader
$ mvn clean install
$ cd target/
$ java -jar *.jar
The Server is configured to start at 8080 port and contextPath fileDownloader.
http://{server:8080}/fileDownloader
Refer the link below for the API documentation.