File Downloader that can download data from multiple sources and protocols to local disk.
The project downloads files using protocols(http, https, ftp, sftp) to a configurable location. This is structured such that, it can be easily extended to support another protocols.
This project solely does not provide and User Interface as only Http API's has been exposed, Api Docs.
To get an User Interface this project can be clubbed with a React App which has been designed to use API's exposed by This project.
These two has been kept separate to not enforce use of any specific User Interface.
TODO
For building and running the application you need:
Clone the repository:
git clone git://github.com/gaurav0107/FileDownloader.git
cd FileDownloaderIf this is your first time using Github, review http://help.github.com to learn the basics.
mvn testmvn test -Dtest=validationTestUsing Spring Boot:
mvn spring-boot:run
curl --location --request POST "https://gdfiledownloader.herokuapp.com/api/v1/downloadRequest" \
--header "Content-Type: application/json" \
--data "{
\"downloadFiles\": [
\"http://www.africau.edu/images/default/sample.pdf\",
\"sftp://test.rebex.net/readme.txt?user=demo&pass=password\",
\"ftp://test.rebex.net/readme.txt?user=demo&pass=password\"
]
}"
GET /api/v1/downloadRequest
curl --location --request GET "https://gdfiledownloader.herokuapp.com/api/v1/downloadRequest"
curl --location --request GET "https://gdfiledownloader.herokuapp.com/api/v1/downloadRequest/ce9b4336-ee74-4a45-9720-70ecdef07e00"
http://www.africau.edu/images/default/sample.pdf
sftp://test.rebex.net/readme.txt?user=demo&pass=password
ftp://test.rebex.net/readme.txt?user=demo&pass=password