Range Readers
Чтение файлов по частям: локально, по HTTP или из памяти.
Bases: RangeReader
Загрузчик файлов по HTTP с докачкой и retry.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
URL файла. |
required |
session
|
ClientSession | None
|
aiohttp-сессия (создаётся при |
None
|
headers
|
dict | None
|
Дополнительные HTTP-заголовки. |
None
|
max_total
|
int
|
Максимальный объём скачанных данных (байт).
|
256000
|
max_ratio
|
float
|
Доля размера файла — относительный лимит скачивания,
действует наравне с |
0.1
|
timeout
|
float
|
Таймаут HTTP-запроса в секундах. |
30
|
sock_connect
|
int
|
Таймаут установки TCP-соединения в секундах. |
5
|
max_retries
|
int
|
Число повторных попыток при |
3
|
retry_on_statuses
|
tuple[int, ...]
|
HTTP-статусы, при которых повторять запрос. |
DEFAULT_RETRY_STATUSES
|
retry_backoff_factor
|
float
|
Множитель задержки между попытками (1.0 → 1с, 2с, 4с). |
1.0
|
allow_external_auth
|
bool
|
Разрешить отправку авторизации на сторонние домены (по умолчанию только oneme.ru или okcdn.ru). |
False
|
Methods:
full_file_save(file_path: str | Path, *, file_name: str | None = None) -> Path
async
Сохраняет файл целиком на диск.
Использует уже полученные данные и активное соединение для докачки недостающих данных.
Bases: RangeReader
Читает локальный файл: head, tail через seek, expand.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
Путь к локальному файлу. |
required |
max_total
|
int
|
Максимальный объём чтения (байт). По умолчанию 20 MB. |
20971520
|
max_ratio
|
float
|
Доля размера файла — относительный лимит объёма чтения
(наравне с |
1.0
|
Methods:
full_file_save(file_path: str | Path, *, file_name: str | None = None) -> Path
async
Копирует локальный файл в указанную директорию.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file_path
|
str | Path
|
Директория для сохранения. |
required |
file_name
|
str | None
|
Имя файла (по умолчанию — оригинальное имя). |
None
|
Returns:
| Type | Description |
|---|---|
Path
|
Абсолютный путь к сохранённому файлу. |
Bases: RangeReader
Читает из bytes/BytesIO без сети.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
bytes | BytesIO
|
Содержимое файла ( |
required |
file_name
|
str
|
Имя файла (для определения MIME-типа). |
''
|
max_total
|
int
|
Максимальный объём чтения (байт). По умолчанию 20 MB. |
20971520
|
max_ratio
|
float
|
Доля размера файла — относительный лимит объёма чтения
(наравне с |
1.0
|
Methods:
from_parts(head: bytes, tail: bytes, file_size: int, file_name: str = '') -> RangeBytesReader
classmethod
Создаёт reader из готовых head/tail и известного размера файла.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
head
|
bytes
|
Начало файла. |
required |
tail
|
bytes
|
Конец файла. |
required |
file_size
|
int
|
Полный размер файла. |
required |
file_name
|
str
|
Имя файла (для определения MIME-типа). |
''
|
Returns:
| Type | Description |
|---|---|
RangeBytesReader
|
RangeBytesReader с заполненными head/tail. |