Перейти к основному содержимому
Версия: 2026.2.4

Вложения

Раздел «Вложения» — загрузка файлов, которые потом прикрепляются к сообщению через attachmentIds (см. «Отправить сообщение»). Как и загрузка аватара (см. «Аватар»), загрузка идёт в два шага через предподписанный URL — сам файл никогда не проходит через это API напрямую, только метаданные. Для больших файлов есть отдельный multipart-режим с загрузкой по частям.

Все запросы этого раздела требуют заголовок Authorization: Bearer <accessToken>.

Объект AttachmentResponse​

ПолеТипОписание
idstringИдентификатор вложения.
uploaderIdstringКто загрузил файл.
fileNamestringИмя файла.
contentTypestringMIME-тип файла.
sizeBytesinteger (int64)Размер файла в байтах.
statusAttachmentStatusТекущий статус загрузки.
isMultipartbooleanБыла ли загрузка выполнена в multipart-режиме.
createdAtstringКогда загрузка была инициирована (ISO8601).
updatedAtstringКогда статус вложения обновлялся в последний раз (ISO8601).

AttachmentStatus​

ЗначениеОписание
ATTACHMENT_STATUS_UNSPECIFIEDЗначение по умолчанию, не используется в реальных ответах.
PENDINGЗагрузка инициирована, файл ещё не подтверждён.
UPLOADEDФайл успешно загружен и подтверждён.
FAILEDЗагрузка завершилась ошибкой.
DELETEDВложение удалено.

Объект ошибки​

При любой ошибке вместо 200 OK возвращается default-ответ:

ПолеТипОписание
codeintegerЧисловой код ошибки (google.rpc.Code).
messagestringЧеловекочитаемое описание ошибки.
detailsarrayДополнительные структурированные детали ошибки (google.protobuf.Any); в большинстве случаев пуст.

Обычная загрузка​

Подходит для файлов, которые целиком помещаются в один HTTP-запрос загрузки.

Запросить загрузку​

POST/v1/attachments/upload

Тело запроса​

ПолеТипОписание
fileNamestringИмя файла.
contentTypestringMIME-тип файла.
sizeBytesinteger (int64)Размер файла в байтах.

Ответ 200 OK​

ПолеТипОписание
attachmentIdstringИдентификатор загрузки — передаётся дальше в «Подтвердить загрузку».
uploadUrlstringПредподписанный URL, на который нужно загрузить файл напрямую.
expiresAtstringВремя, до которого действителен uploadUrl.

Ответ default (ошибка)​

Стандартный объект ошибки.

Подтвердить загрузку​

POST/v1/attachments/{attachmentId}/confirm

Подтверждает, что файл по uploadUrl загружен, и переводит вложение в статус UPLOADED.

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор загрузки.

Ответ 200 OK​

Объект AttachmentResponse со статусом UPLOADED.

Ответ default (ошибка)​

Стандартный объект ошибки — например, если файл по uploadUrl ещё не загружен.


Multipart-загрузка​

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

Инициировать multipart-загрузку​

POST/v1/attachments/multipart

Тело запроса​

ПолеТипОписание
fileNamestringИмя файла.
contentTypestringMIME-тип файла.
sizeBytesinteger (int64)Полный размер файла в байтах.
partCountintegerЧисло частей, на которые клиент разобьёт файл.

Ответ 200 OK​

ПолеТипОписание
attachmentIdstringИдентификатор загрузки.
multipartUploadIdstringИдентификатор multipart-сессии.
partUrlsarrayПредподписанные URL для каждой части: объекты { partNumber, url }.

Ответ default (ошибка)​

Стандартный объект ошибки.

Получить URL для частей​

GET/v1/attachments/{attachmentId}/multipart/part-urls

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

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор multipart-загрузки.

Query-параметры​

ПолеТипОписание
partNumbers?array<integer>Номера частей, для которых нужны URL.

Ответ 200 OK​

ПолеТипОписание
partUrlsarrayОбъекты { partNumber, url } для запрошенных частей.

Ответ default (ошибка)​

Стандартный объект ошибки.

Завершить multipart-загрузку​

POST/v1/attachments/{attachmentId}/multipart/complete

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

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор multipart-загрузки.

Тело запроса​

ПолеТипОписание
partsarrayСписок загруженных частей: объекты { partNumber, etag }, где etag — значение заголовка ETag, возвращённое при загрузке этой части по её предподписанному URL.

Ответ 200 OK​

Объект AttachmentResponse со статусом UPLOADED.

Ответ default (ошибка)​

Стандартный объект ошибки — например, если часть из списка parts не была фактически загружена.

Отменить multipart-загрузку​

POST/v1/attachments/{attachmentId}/multipart/abort

Отменяет незавершённую multipart-загрузку.

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор multipart-загрузки.

Ответ 200 OK​

Пустой объект {}.

Ответ default (ошибка)​

Стандартный объект ошибки.


Работа с готовым вложением​

Получить метаданные вложения​

GET/v1/attachments/{attachmentId}

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор вложения.

Ответ 200 OK​

Объект AttachmentResponse.

Ответ default (ошибка)​

Стандартный объект ошибки.

Получить ссылку на скачивание​

GET/v1/attachments/{attachmentId}/download-url

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор вложения.

Ответ 200 OK​

ПолеТипОписание
downloadUrlstringURL для скачивания файла.

Ответ default (ошибка)​

Стандартный объект ошибки.

Удалить вложение​

POST/v1/attachments/{attachmentId}:delete

Параметры пути​

ПолеТипОписание
attachmentIdstringИдентификатор вложения.

Ответ 200 OK​

Пустой объект {}.

Ответ default (ошибка)​

Стандартный объект ошибки.