From 7164516211cd5817e95cde4c15a2dfdbe22cb7bf Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 1 Aug 2025 10:07:51 +0300 Subject: [PATCH] Add readme --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..92284fa --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Image Downloader + +**Учебный проект** - консольная утилита для скачивания изображений по URL-адресам. + +## Описание + +Программа позволяет скачивать изображения из списка URL-адресов с поддержкой: +- Параллельной загрузки (настраиваемое количество потоков) +- Ограничения скорости загрузки (rate limiting) +- Повторных попыток при ошибках +- Автоматического определения расширения файла по Content-Type +- Чтения URL-адресов из файла или stdin + +## Использование + +```bash +go run main.go [OPTIONS] [input-file|-] +``` + +### Параметры + +- `-t duration` - таймаут запроса (по умолчанию 60s) +- `-r int` - количество попыток загрузки (по умолчанию 5) +- `-j int` - количество параллельных загрузок (по умолчанию 5) +- `-rate float` - максимальное количество загрузок в секунду (0 = без ограничений) + +### Примеры + +```bash +# Скачать изображения из файла в папку images +go run main.go urls.txt images/ + +# Скачать из stdin с ограничением в 2 загрузки в секунду +cat urls.txt | go run main.go -rate 2 -j 3 - downloads/ +``` + +## Сборка + +```bash +go build -o imgdownloader main.go +``` + +## Зависимости + +- Go 1.24.3+ +- golang.org/x/time (для rate limiting) + +--- + +*Это учебный проект для изучения Go и работы с HTTP-клиентами.*