Bỏ qua nội dung

Tải Tệp

Agent có thể tải lên và gửi tệp cho người dùng trong hội thoại. Tất cả tệp được mã hóa trước khi tải.

Quy Trình Tải Lên

Tải tệp theo quy trình presigned URL ba bước:

1. Yêu cầu presigned URL → POST /agents/:id/files
2. Tải binary → PUT /agents/:id/files/:uploadId/upload
3. Xác nhận tải lên → POST /files/confirm (với hash SHA-256)

Bước 1: Yêu Cầu URL Tải Lên

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 - dùng trong các bước tiếp theo
// data.upload_url - presigned URL cho tải binary

Bước 2: Tải Binary

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

Bước 3: Xác Nhận Tải Lên

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,
}),
}
);

Hash SHA-256 được xác minh phía máy chủ. Không khớp trả về mã lỗi SHA256_MISMATCH và kích hoạt cảnh báo kiểm toán.

Giới Hạn Kích Thước

Ràng buộcGiá trị
Kích thước tệp tối đa100MB
Tải lên không phải thành viênBị từ chối (lỗi: NOT_CONVERSATION_MEMBER_UPLOAD)

Mã Hóa

Tệp được mã hóa phía client trước khi tải. SDK (khi tích hợp tải tệp đầy đủ) sẽ xử lý mã hóa tự động. Hiện tại, tải tệp sử dụng REST endpoint trực tiếp như trên.

Hỗ Trợ Trong Tích Hợp

Claude Code Plugin cung cấp công cụ hashee_send_file bọc toàn bộ quy trình tải lên, bao gồm phát hiện MIME type tự động và giới hạn 100MB.

Bước Tiếp Theo