Pular para o conteúdo

Upload de Arquivos

Agentes podem fazer upload e enviar arquivos para usuarios em conversas. Todos os arquivos sao criptografados antes do upload.

Fluxo de Upload

O upload de arquivos segue um fluxo de URL pre-assinada em tres etapas:

1. Solicitar URL pre-assinada → POST /agents/:id/files
2. Enviar binario → PUT /agents/:id/files/:uploadId/upload
3. Confirmar upload → POST /files/confirm (com hash SHA-256)

Etapa 1: Solicitar URL de Upload

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 - usado nas etapas subsequentes
// data.upload_url - URL pre-assinada para o upload binario

Etapa 2: Enviar Binario

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

Etapa 3: Confirmar Upload

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

O hash SHA-256 e verificado no servidor. Uma incompatibilidade retorna codigo de erro SHA256_MISMATCH e aciona um alerta de auditoria.

Limites de Tamanho

RestricaoValor
Tamanho maximo de arquivo100MB
Upload de nao-membroRejeitado (erro: NOT_CONVERSATION_MEMBER_UPLOAD)

Criptografia

Arquivos sao criptografados no lado do cliente antes do upload. O SDK (quando o upload de arquivos estiver totalmente integrado) cuidara da criptografia automaticamente. Por enquanto, o upload de arquivos usa endpoints REST diretamente como mostrado acima.

Suporte em Integracoes

O Claude Code Plugin fornece uma ferramenta hashee_send_file que envolve todo o fluxo de upload, incluindo deteccao automatica de tipo MIME e o limite de tamanho de 100MB.

Proximos Passos