Загрузка файлов

Для того, чтобы прикрепить файл к сообщению или к какой-то другой сущности в других методах API, вам необходимо сначала загрузить его на сервер, используя для этого уникальный набор параметров, а затем сформировать ссылку на загруженный файл.

Получение подписи, ключа и других параметров Данный метод необходимо использовать для загрузки каждого файла.

Данный метод позволяет получить уникальный набор параметров для загрузки файла.

post /uploads получения подписи и ключа для загрузки файла
Запрос
Параметры запроса отсутствуют
Ответ
Content-Disposition string Используемый заголовок (в данном запросе - attachment)
acl string Уровень безопасности (в данном запросе - private)
policy string Уникальный policy для загрузки файла
x-amz-credential string x-amz-credential для загрузки файла
x-amz-algorithm string Используемый алгоритм (в данном запросе - AWS4-HMAC-SHA256)
x-amz-date string Уникальный x-amz-date для загрузки файла
x-amz-signature string Уникальная подпись для загрузки файла
key string Уникальный ключ для загрузки файла
direct_url string Адрес для загрузки файла
Возможные ошибки запроса (errors code)
Описания ошибок отсутствуют
Тело запроса отсутствует
{
    "Content-Disposition": "attachment",
    "acl": "private",
    "policy": "eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYC11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L4J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV22",
    "x-amz-credential": "286471_server/20211122/kz-6x/s3/aws4_request",
    "x-amz-algorithm": "AWS4-HMAC-SHA256",
    "x-amz-date": "20211122T065734Z",
    "x-amz-signature": "87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475",
    "key": "attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}",
    "direct_url": "https://api.pachca.com/api/v3/direct_upload"
}

После получения параметров для загрузки файла, вы можете переходить к загрузке.

Загрузка файла

Получив все параметры, вам необходимо сделать POST запрос в формате multipart/form-data на адрес, который был указан в поле direct_url , отправив полученные параметры и сам файл.

post direct_url (полученный в ответе на запрос /uploads) загрузка файла
Запрос
Content-Disposition string* Параметр Content-Disposition, полученный в ответе на запрос /uploads
acl string* Параметр acl, полученный в ответе на запрос /uploads
policy string* Параметр policy, полученный в ответе на запрос /uploads
x-amz-credential string* Параметр x-amz-credential, полученный в ответе на запрос /uploads
x-amz-algorithm string* Параметр x-amz-algorithm, полученный в ответе на запрос /uploads
x-amz-date string* Параметр x-amz-date, полученный в ответе на запрос /uploads
x-amz-signature string* Параметр x-amz-signature, полученный в ответе на запрос /uploads
key string* Параметр key, полученный в ответе на запрос /uploads
file file* Файл для загрузки
Ответ
При безошибочном выполнении запроса тело ответа отсутствует, код ответа 204
Возможные ошибки запроса
При ошибке выполнения запроса вы получите в ответ xml, в котором будет расписана ошибка Error и в поле Message будут указаны подробности
Пример запроса отсутствует
Запрос необходимо отправлять в формате multipart/form-data
При безошибочном выполнении запроса тело ответа отсутствует

Прикрение файла к сообщению или к другим сущностям (формирование ссылки)

После того, как вы успешно загрузили файл на сервер, вам необходимо сформировать правильный путь до файла, который вы будете использовать в методе отправки сообщения и других методах, где вам потребуется прикрепить файл.

Для этого замените фразу ${filename} в key на название файла, который вы отравляли.

Например, ваш файл назывался Логотип для сайта.png ,
а в поле key вы получили attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename} .

Тогда итоговый путь к файлу, который вы будете использовать для его прикрепления к сообщению и в других методах, получится attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/Логотип для сайта.png .

Не допускается отправка одного и тоже же пути к файлу в разных сообщениях. Нельзя один раз загрузить файл и прикрепить его к нескольким сообщениям. Необходимо для каждого сообщения повторно загружать этот файл и получать его уникальный путь.