Загрузка файлов
Загрузка файлов через API Пачки — трёхшаговый процесс с presigned URL (S3-совместимое хранилище).
Процесс загрузки
Получение параметров загрузки
Сделайте запрос к методу POSTПолучение подписи, ключа и других параметров без тела для получения подписи и параметров. Данный метод необходимо использовать для загрузки каждого файла.
В ответе вы получите параметры для следующего шага: Content-Disposition, acl, policy, x-amz-credential, x-amz-algorithm, x-amz-date, x-amz-signature, key и direct_url.
Загрузка файла
Отправьте запрос к методу POSTЗагрузка файла с форматом multipart/form-data на адрес direct_url. Включите все полученные параметры и сам файл. При успешной загрузке сервер вернёт HTTP 201 Created.
file) должен быть последним полем.Прикрепление файла к сообщению или другой сущности
После загрузки файла, чтобы прикрепить его к сообщению или другой сущности API, необходимо сформировать путь файла. Для этого в поле key, полученном на этапе подписи, заменить шаблон ${filename} на фактическое имя файла.
Пример: если ваш файл называется Логотип для сайта.png, а в ответе на метод /uploads ключ был attaches/files/93746/e354-...-5e6f/${filename}, итоговый ключ будет attaches/files/93746/e354-...-5e6f/Логотип для сайта.png.
Через CLI
Команда pachca upload автоматически выполняет шаги 1 и 2 — получает подпись и загружает файл на S3. Возвращает готовый key:
Типы файлов
| Тип | file_type | Дополнительные поля |
|---|---|---|
| Файл | file | — |
| Изображение | image | width, height — размеры в пикселях |
Полный пример
Частые ошибки
| Ошибка | Причина | Решение |
|---|---|---|
403 Forbidden при загрузке | Истекла подпись | Параметры загрузки действительны ограниченное время. Запросите новые через POST /uploads |
400 Bad Request | Неправильный Content-Type | Убедитесь, что запрос отправляется как multipart/form-data, а не application/json |
| Файл не отображается | Неверный key | Проверьте, что ${filename} в ключе заменён на реальное имя файла |