Skip to main content

Arquivos

File upload

POST
/upload/file
Autenticação via cookies

Endpoint para upload de arquivos gerais. Espera o header multipart/form-data. Retorna os erros com mensagens e os códigos esperados para usuários não autenticados ou para requests mal formadas.

Request

type FileUploadData = {
file: File
meta?: string
}

O campo opcional meta serve para armazenar informação extra sobre o arquivo, caso você precise dela no mesmo registro. É possível enviar objetos com serialização JSON.stringify (A SDK faz isso automaticamente). Caso seja necessário guardar muitas informações extras sobre o registro, ter uma tabela em seu próprio banco de dados referenciando o id do arquivo é uma boa ideia.

Response

Status: 201
type FileUploadResponse = {
msg: string
file: {
id: string
type: string
path: string
meta: string | null
createdAt: Date
}
}

Nota: 'type' será o mime-type do arquivo salvo.

File retrieve

GET
/retrieve/file/:id
Autenticação via cookies

Endpoint que disponibiliza informação sobre os arquivos e um link de download. Quando realizada a integração com seu app, você pode salvar apenas o ID do arquivo, e então retirar suas informações por este endpoint, além de já receber o link de download para enviar seu usuário.

Responses

Status: 404
type RetrieveFileNotFound = {
err: string
sentId: string
}

Status: 200
type RetrieveFileResponse = {
file: {
id: string
type: string
path: string
meta: string | null
createdAt: Date
},
downloadUrl: string
}

File download

GET
/download/file/:id
Autenticação via cookies

Responses

Status: 404
type DownloadFileNotFound = {
err: string
sentId: string
}

Status: 400
type TriedToDecompressStaticImage = {
err: string
sentId: string
}

Retorna quando é tentado baixar um arquivo de imagem servido estaticamente pelos endpoints de arquivo. Este endpoint pega um arquivo comprimido no sistema e retorna seu Buffer para o navegador, com headers que fazem o browser descomprimir o arquivo e baixá-lo. Se você está tentando baixar uma das imagens salvas estaticamente, você não deve utilizar este endpoint, mas sim o URL da própria imagem, recebido quando for feito o seu upload. (As imagens estáticas devem ser enviadas pelo endpoint de imagens, onde é feita uma otimização específica para elas.) A parte de arquivos serve para enviar e baixar arquivos que serão compartilhados entre usuários de sua aplicação, como PDFs, planilhas, etc (podem ser imagens também, mas para que seja possível baixar elas, ela deve ter sido enviada pelo endpoint /upload/file, e não terá otimizações como conversão para webp automática). Algumas vezes isto é ok. As imagens que você precisa enviar pelo endpoint /upload/image são aquelas que você quer exibir no seu app, e não apenas salvar o arquivo. Caso não vá mostrar essa imagem em seu app, e sim apenas enviar o arquivo, é completamente válido o uso do endpoint /upload/file para salvá-la.


Status: 200

O status 200 retorna um buffer e os headers necessários para download. Não retorna JSON. Ao bater nessa URL, o arquivo será baixado automaticamente pelo browser.