Zip-архив
Упаковывает несколько ваших файлов в один ZIP-архив за один запрос. Для каждого файла можно задать свои параметры трансформации.
Эндпоинт получает каждый файл через обычный конвейер отдачи (применяя трансформации), стримит их в ZIP и возвращает как application/zip.
https://api.defaultuploader.com/v1/zip# Content-Type: application/json# Требуется заголовок — authorization: SECRET_CLIENT_TOKENТело запроса
Заголовок раздела «Тело запроса»{ "files": [ { "type": "image", "path": "photo.jpg", "params": { "w": 200, "f": "webp" }, "name": "small.webp" }, { "path": "subdir/cat.png" } ], "archiveName": "export.zip"}| Поле | Обязательное | Описание |
|---|---|---|
files | да | Массив файлов для включения (1–100). |
files[].path | да | Путь к файлу, как в URL отдачи после /v1/<type>/upload/<token>/. Поддерживаются подкаталоги. |
files[].type | нет | Тип ресурса: image (по умолчанию), video, audio, text, application. |
files[].params | нет | Параметры трансформации для этого файла — те же, что и параметры трансформации изображения/видео (например, w, h, f). |
files[].name | нет | Имя файла внутри архива. По умолчанию — path. |
archiveName | нет | Имя возвращаемого архива. По умолчанию — archive.zip. |
Архив возвращается потоком с заголовками Content-Type: application/zip и Content-Disposition: attachment.
Файлы, которые не удалось получить (отсутствуют, ошибка и т.д.), пропускаются — они не приводят к падению всего запроса. В корне архива всегда лежит _manifest.json с результатом по каждому файлу:
[ { "path": "photo.jpg", "name": "small.webp", "status": "ok", "size": 18324 }, { "path": "subdir/cat.png", "status": "error", "code": 404 }]- До 100 файлов за запрос.
- К этому эндпоинту применяется отдельный rate limit, так как один запрос разворачивается во множество внутренних обращений.
pathвалидируется: выход за пределы пути (..), инъекция query и абсолютные пути отклоняются с кодом400.
curl --location 'https://api.defaultuploader.com/v1/zip' --header 'Authorization: YOUR_SECRET_CLIENT_TOKEN' --header 'Content-Type: application/json' --data '{"files":[{"path":"photo.jpg","params":{"w":200}},{"path":"logo.png","name":"brand.png"}],"archiveName":"export.zip"}' --output export.zip