Pular para o conteúdo principal

File Storage

O Building Block File Storage fornece funcionalidades para upload, download e gerenciamento de arquivos usando Amazon S3.

Visão Geral

O módulo File Storage e tenant-scoped e oferece:

  • Upload de arquivos via URLs pre-assinadas
  • Download seguro com URLs temporarias
  • Categorização de arquivos por tipo
  • Associação de arquivos a entidades de negócio

Base URL

https://api.catalisa.io/file-storage

Recursos

RecursoDescrição
ArquivosUpload, download e gerenciamento de arquivos

Endpoints

MétodoEndpointDescriçãoPermissão
POST/api/v1/filesCriar arquivo (obter URL de upload)FILES_CREATE
GET/api/v1/filesListar arquivosFILES_READ
GET/api/v1/files/:idObter arquivoFILES_READ
POST/api/v1/files/:id/confirm-uploadConfirmar uploadFILES_CREATE
GET/api/v1/files/:id/upload-urlObter nova URL de uploadFILES_CREATE
GET/api/v1/files/:id/download-urlObter URL de downloadFILES_READ
DELETE/api/v1/files/:idExcluir arquivoFILES_DELETE

Tipos de Arquivo Suportados

MIME TypeExtensãoDescrição
application/pdf.pdfDocumentos PDF
image/png.pngImagens PNG
image/jpeg.jpg, .jpegImagens JPEG
application/octet-stream*Binario generico

Categorias de Arquivo

CategoriaDescriçãoUso Comum
IDENTITYDocumentos de identidadeRG, CNH, passaporte
ADDRESSComprovante de endereçoConta de luz, extrato
INCOMEComprovante de rendaHolerite, IR, extrato
CONTRACTContratosCCB, termos
COLLATERALGarantiasDocumentos de garantia
OTHEROutrosDocumentos diversos

Fluxo de Upload

O upload de arquivos segue um fluxo de 3 etapas:

1. Criar registro    ──►  2. Upload para S3   ──►  3. Confirmar upload
POST /files PUT {uploadUrl} POST /files/:id/confirm-upload
↓ ↓ ↓
Recebe uploadUrl Arquivo no S3 uploaded = true

Diagrama de Sequencia

Cliente              API                  S3
│ │ │
│ POST /files │ │
│─────────────────►│ │
│ │ │
│ { uploadUrl } │ │
│◄─────────────────│ │
│ │ │
│ PUT uploadUrl (arquivo) │
│─────────────────────────────────────►│
│ │ │
│ │ 200 OK │
│◄─────────────────────────────────────│
│ │ │
│ POST /confirm │ │
│─────────────────►│ │
│ │ │
│ { uploaded: true}│ │
│◄─────────────────│ │

URLs Pre-assinadas

As URLs de upload e download são pre-assinadas pelo S3, o que significa:

  • Validas por tempo limitado (15 minutos)
  • Não requerem autenticação adicional
  • Permitem acesso direto ao S3
Atenção
  • URLs de upload expiram em 15 minutos
  • URLs de download expiram em 15 minutos
  • Se a URL expirar, solicite uma nova

Estrutura de Dados

Arquivo

{
"data": {
"type": "files",
"id": "uuid",
"attributes": {
"name": "documento.pdf",
"mimeType": "application/pdf",
"sizeBytes": 1048576,
"category": "IDENTITY",
"businessId": "origination-123",
"uploaded": true,
"createdBy": "user-uuid",
"createdAt": "2024-01-15T10:30:00Z"
}
}
}