Перейти до вмісту

Завантаження файлів

Агенти можуть завантажувати та надсилати файли користувачам у розмовах. Усі файли шифруються перед завантаженням.

Процес завантаження

Завантаження файлів використовує триетапний процес з presigned URL:

1. Запит presigned URL → POST /agents/:id/files
2. Завантаження бінарних даних → PUT /agents/:id/files/:uploadId/upload
3. Підтвердження завантаження → POST /files/confirm (з SHA-256 hash)

Крок 1: Запит URL для завантаження

const response = await fetch(
`${baseUrl}/agents/${agentId}/files`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${agentToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
filename: "report.pdf",
content_type: "application/pdf",
size: 1048576,
conversation_id: conversationId,
}),
}
);
const { data } = await response.json();
// data.upload_id - використовується на наступних кроках
// data.upload_url - presigned URL для бінарного завантаження

Крок 2: Завантаження бінарних даних

await fetch(
`${baseUrl}/agents/${agentId}/files/${data.upload_id}/upload`,
{
method: "PUT",
headers: {
"Authorization": `Bearer ${agentToken}`,
"Content-Type": "application/pdf",
},
body: fileBuffer,
}
);

Крок 3: Підтвердження завантаження

await fetch(
`${baseUrl}/files/confirm`,
{
method: "POST",
headers: {
"Authorization": `Bearer ${agentToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
upload_id: data.upload_id,
sha256: computedSha256Hash,
}),
}
);

SHA-256 hash перевіряється на сервері. Невідповідність повертає код помилки SHA256_MISMATCH та ініціює аудит-попередження.

Обмеження розміру

ОбмеженняЗначення
Максимальний розмір файлу100MB
Завантаження не-учасникомВідхилено (помилка: NOT_CONVERSATION_MEMBER_UPLOAD)

Шифрування

Файли шифруються на стороні клієнта перед завантаженням. SDK (коли завантаження файлів буде повністю інтегровано) оброблятиме шифрування автоматично. Наразі завантаження файлів використовує REST endpoints безпосередньо, як показано вище.

Підтримка в інтеграціях

Claude Code Plugin надає інструмент hashee_send_file, який обгортає весь процес завантаження, включаючи автоматичне визначення MIME-типу та обмеження розміру 100MB.

Наступні кроки