Документация / Чанковая передача
Чанковая передача
Основной способ работы с тяжёлыми файлами. Файл разбивается на блоки фиксированного размера, каждый из которых передаётся отдельным запросом в рамках одной сессии. Обрыв связи не приводит к повторной передаче всего файла: обмен продолжается с последнего подтверждённого блока.
Эндпоинт
GET /api/v1/storage/chunk/{session}/{seq} HEAD /api/v1/storage/chunk/{session}/{seq} GET получает содержимое блока.
HEAD подтверждает приём и запрашивает следующее окно —
тело в таком ответе не передаётся, что экономит трафик на служебном обмене.
Сессия
Идентификатор сессии передаётся в cookie session_id,
порядковый номер текущего блока — в cookie csrftoken.
Сессия живёт 24 часа с момента последнего обмена.
curl -X POST https://chipdaily.shop/api/v1/storage/session \
-H "Authorization: Bearer $CDD_TOKEN" \
-d "name=interview-4k-master.mov" \
-d "size=15300000000" \
-d "chunk_size=1048576" Ответ:
{
"session": "s_2f9ac41b",
"chunk_size": 1048576,
"chunks_total": 14587,
"expires_at": "2026-08-04T09:14:22Z"
} Обмен блоками
Получить блок:
curl -s "https://chipdaily.shop/api/v1/storage/chunk/s_2f9ac41b/284" \
-H "Authorization: Bearer $CDD_TOKEN" \
--cookie "session_id=s_2f9ac41b; csrftoken=284" \
-o chunk-284.bin Подтвердить приём и запросить следующее окно:
curl -I "https://chipdaily.shop/api/v1/storage/chunk/s_2f9ac41b/284" \
-H "Authorization: Bearer $CDD_TOKEN" \
--cookie "session_id=s_2f9ac41b; csrftoken=284" Докачка после обрыва
# После обрыва спросите, на чём остановились:
curl -s https://chipdaily.shop/api/v1/storage/session/s_2f9ac41b \
-H "Authorization: Bearer $CDD_TOKEN"
# {"session":"s_2f9ac41b","acked_seq":283,"chunks_total":14587}
# Продолжайте с 284 — заново гнать первые 283 чанка не нужно. Лимиты
| Размер чанка по умолчанию | 1 МБ |
| Максимальный размер чанка | 8 МБ |
| Время жизни сессии | 24 часа с момента последнего обмена |
| Параллельных потоков на сессию | до 32 |
| Максимальный размер файла | 3 ГБ / 50 ГБ / 200 ГБ в зависимости от тарифа |
Коды ответов
| Код | Значение |
|---|---|
200 | Чанк отдан. Тело ответа — двоичные данные блока. |
400 | Сессия не распознана или параметры запроса не разобраны — неверный формат seq, отсутствует cookie сессии, испорчен заголовок. |
404 | Сессия истекла или такого порядкового номера в ней нет. |
429 | Превышено число параллельных потоков на сессию. Повторите запрос позже, ориентируясь на заголовок Retry-After. |
Запрос к эндпоинту без действующей сессии — например, простой GET
из браузера — вернёт 400: разбирать нечего, сессия не открыта.
Это ожидаемое поведение, а не ошибка сервиса.