A command-line application written in Go that allows users to download multiple files concurrently with features like pausing, resuming, and canceling downloads.
- Concurrent Downloads: Download multiple files simultaneously using goroutines.
- Progress Tracking: Real-time display of download progress for each file.
- Pause/Resume: Ability to pause and resume individual downloads.
- Cancel Downloads: Option to cancel ongoing downloads.
- Configurable: Customize download directory and maximum concurrent downloads via configuration.
-
Clone the Repository:
git clone https://github.com/Aryagorjipour/SFD.git cd SFD
-
Build the Application:
./scripts/build.sh
The executable will be located at ./bin/downloader.
./bin/downloader [download_directory]
- Example:
./bin/downloader ./my_downloads
-
- Download a file:
download <URL>
- List all downloads:
list
- Pause a download:
pause <ID>
- Resume a download:
resume <ID>
- Cancel a download:
cancel <ID>
- Exit the application:
exit
Modify the configs/config.yaml
file to customize settings:
download_directory: "./downloads"
max_concurrent_downloads: 5
Run tests using the following command:
go test ./tests/...
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
MIT License © 2024 Aryagorjipour