51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# Image Downloader
|
||
|
||
**Учебный проект** - консольная утилита для скачивания изображений по URL-адресам.
|
||
|
||
## Описание
|
||
|
||
Программа позволяет скачивать изображения из списка URL-адресов с поддержкой:
|
||
- Параллельной загрузки (настраиваемое количество потоков)
|
||
- Ограничения скорости загрузки (rate limiting)
|
||
- Повторных попыток при ошибках
|
||
- Автоматического определения расширения файла по Content-Type
|
||
- Чтения URL-адресов из файла или stdin
|
||
|
||
## Использование
|
||
|
||
```bash
|
||
go run main.go [OPTIONS] [input-file|-] <output-dir>
|
||
```
|
||
|
||
### Параметры
|
||
|
||
- `-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-клиентами.*
|