IntegrationsReferência da API

Anexos

Fluxos de URLs presigned para upload e download de anexos de documentos.

Last updated on

Anexos utilizam um modelo de URL presigned. Os Integradores primeiro solicitam uma URL temporária à Carrot API, e então fazem upload ou download dos dados do arquivo diretamente com a URL retornada.

Criar URL de upload

PUT
/documents/{documentId}/attachments/{fileName}

Path Parameters

documentId*string

ID do documento a qual o arquivo pertence

fileName*string

Nome do arquivo

Header Parameters

Authorization*string

Token de autorização

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PUT "https://example.com/documents/28b04f62-8fe2-4332-b854-fe8a922788b5/attachments/imagem.png" \  -H "Authorization: string" \  -H "Content-Type: application/json" \  -d '{    "contentLength": 2064,    "contentType": "image/png"  }'
{  "url": "https://bucket-palantir-files-2dfd6ab.s3.us-east-1.amazonaws.com/attachments/document/2b02cba4-2abb-4ae8-b938-9a8dfa21d07c/sangalli3.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIASRVXQK6OAHP7MVMF%2F20230828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230828T200038Z&X-Amz-Expires=604800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIDVJGCaQA%2FGNQGUZv1DoYBQP9P7teWjZ4UbB37fBzhfJAiEApDN2da7RciY%2B8JRyF70PfD2TQ6SnXGKkvLgtb%2Bped8Mq%2FQIIlf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwxNzU0MDQ3NjcxMzIiDAIUC5rUpbaLUK7Y0yrRAnnWUVlCZA3MB5KhHLwxiSX77JTm6FGCrMCzrGzhjFk2LvHnv8yZv3WJhmeuahHZX%2BND5Iyl6sAhlehDmX9fWwax0vf1caEsbb2xHHkJfXKYEhvlbJ6B0GRNUYOz4dHZGFzTG0PUX6sPxrZHyDmk2MiCZU9ruX1oOpMYqGcZv0hRVS5RzCneo18eoGTEq6M1Mikv%2BT%2BFX8iTcwPP9DftFz44CWKcZpuMhOHlQEBuwJYHrgUDbl75WgEkuKW2mAs2avn8vQl4DtG08gJd1WKRqILKKVdfxZ7TYFjaEzAdR%2Fh3%2B0%2FZDwvg5JcGqInX2HWFu%2BoATN%2Bf4OFXvohdzOGir0NTeNovbE5ParKVsqE23lC9dhpqRnl3pJlNL9xi4JqBzyNfaanfM6A04cYpt6iiDTEvta4IKxGjyCkADWQzC7b92jOCtHnhF87NGg%2FHjpP2PK8wvvmzpwY6ngHCnf9yb1f4jgyRBvP9JOPetR9vjY31ekAabs3%2B2VFIGJtUiRETh1aOuD%2BtD3pjnw%2F04rg3%2FKL3kGiDDmcNIy%2BCfaMdNjJSkQ0y8SsoX3joXTs2pd55bs4QTlOFX4kjQTzllospaUFTVewsNJe3%2Fui1yKKKPZ%2BQG7CkdHGLCUUQjqSEVzUSXtHy8DFpNDLzZKB1MlwDNLSBqW1C2PA4Ng%3D%3D&X-Amz-Signature=6f299bc60c53f8d4edca622afd61a471a533d68d60e51fb2a34ac010b4e1419d&X-Amz-SignedHeaders=content-length%3Bhost&x-id=PutObject"}

Utilize PUT /documents/{documentId}/attachments/{fileName} para solicitar uma URL de upload. Envie:

  • contentLength (bytes)
  • contentType (tipo MIME)

Após receber a URL:

  1. Envie PUT para a URL presigned com o arquivo em formato binário.
  2. Inclua o mesmo Content-Type declarado na solicitação da URL.
  3. Envie Content-Length igual ao contentLength que você declarou. O Content-Length faz parte da assinatura — a URL carrega X-Amz-SignedHeaders=content-length;host — então um comprimento divergente falha com erro de assinatura. O Content-Type não é assinado, então uma divergência ali falha de outra forma ou nem falha; envie-o corretamente mesmo assim.
  4. Nenhum cabeçalho Authorization é necessário para a chamada de upload presigned.

Obter URL de download

GET
/documents/{documentId}/attachments/{fileName}

Path Parameters

documentId*string

ID do documento a qual o anexo pertence

fileName*string

Nome do anexo

Header Parameters

Authorization*string

Token de autorização

Response Body

application/json

curl -X GET "https://example.com/documents/28b04f62-8fe2-4332-b854-fe8a922788b5/attachments/imagem.png" \  -H "Authorization: string"
{  "url": "https://bucket-palantir-files-2dfd6ab.s3.us-east-1.amazonaws.com/attachments/document/2b02cba4-2abb-4ae8-b938-9a8dfa21d07c/sangalli3.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIASRVXQK6OAHP7MVMF%2F20230828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230828T200038Z&X-Amz-Expires=604800&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMz%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIDVJGCaQA%2FGNQGUZv1DoYBQP9P7teWjZ4UbB37fBzhfJAiEApDN2da7RciY%2B8JRyF70PfD2TQ6SnXGKkvLgtb%2Bped8Mq%2FQIIlf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgwxNzU0MDQ3NjcxMzIiDAIUC5rUpbaLUK7Y0yrRAnnWUVlCZA3MB5KhHLwxiSX77JTm6FGCrMCzrGzhjFk2LvHnv8yZv3WJhmeuahHZX%2BND5Iyl6sAhlehDmX9fWwax0vf1caEsbb2xHHkJfXKYEhvlbJ6B0GRNUYOz4dHZGFzTG0PUX6sPxrZHyDmk2MiCZU9ruX1oOpMYqGcZv0hRVS5RzCneo18eoGTEq6M1Mikv%2BT%2BFX8iTcwPP9DftFz44CWKcZpuMhOHlQEBuwJYHrgUDbl75WgEkuKW2mAs2avn8vQl4DtG08gJd1WKRqILKKVdfxZ7TYFjaEzAdR%2Fh3%2B0%2FZDwvg5JcGqInX2HWFu%2BoATN%2Bf4OFXvohdzOGir0NTeNovbE5ParKVsqE23lC9dhpqRnl3pJlNL9xi4JqBzyNfaanfM6A04cYpt6iiDTEvta4IKxGjyCkADWQzC7b92jOCtHnhF87NGg%2FHjpP2PK8wvvmzpwY6ngHCnf9yb1f4jgyRBvP9JOPetR9vjY31ekAabs3%2B2VFIGJtUiRETh1aOuD%2BtD3pjnw%2F04rg3%2FKL3kGiDDmcNIy%2BCfaMdNjJSkQ0y8SsoX3joXTs2pd55bs4QTlOFX4kjQTzllospaUFTVewsNJe3%2Fui1yKKKPZ%2BQG7CkdHGLCUUQjqSEVzUSXtHy8DFpNDLzZKB1MlwDNLSBqW1C2PA4Ng%3D%3D&X-Amz-Signature=6f299bc60c53f8d4edca622afd61a471a533d68d60e51fb2a34ac010b4e1419d&X-Amz-SignedHeaders=content-length%3Bhost&x-id=PutObject"}

Utilize GET /documents/{documentId}/attachments/{fileName} para solicitar uma URL temporária de download. Em seguida, realize um GET padrão na URL retornada para obter o arquivo.

Limites e comportamento

  • Tamanho máximo de arquivo por upload: 10 MB.
  • URLs de upload são válidas por 7 dias; URLs de download, por 2 minutos — solicite a URL de download imediatamente antes de buscar o arquivo.
  • Após o upload, você precisa referenciar o nome do arquivo no array attachments de um evento. Um arquivo que nenhum evento referencia não pode ser baixado.
  • Nomes de arquivo são únicos por documento: uma vez que um arquivo foi enviado com um determinado nome, solicitar uma nova URL de upload para esse mesmo nome no mesmo documento é rejeitado com Attachment <fileName> already exists em vez de sobrescrever. A rejeição acontece na chamada de criação da URL de upload, então solicitar uma URL para um nome cujos bytes nunca foram enviados ainda funciona.

Consulte Upload de Arquivos para padrões práticos de integração.

On this page