Pular para conteúdo

AWS S3 - Operações de Armazenamento na Nuvem

Visão Geral

O AWS S3 (Simple Storage Service) é o serviço de armazenamento de objetos da Amazon Web Services. No Lumina Flow Builder, você pode integrar operações S3 diretamente nos seus flows para gerenciar arquivos na nuvem.

Operações Disponíveis

1. S3 UPLOAD - Enviar Arquivo para S3

Faz upload de arquivos para buckets S3 com controle de permissões (ACL) e tipo de conteúdo.

Casos de uso: - Armazenar documentos enviados por usuários - Fazer backup de arquivos gerados - Hospedar imagens e mídias - Salvar dados para análise posterior

Parâmetros principais: - bucketName - Bucket de destino - key - Caminho do arquivo - content - Arquivo em Base64 - contentType - Tipo MIME - acl - Permissões (private/public-read)


2. S3 DOWNLOAD - Baixar Arquivo do S3

Recupera arquivos armazenados no S3 retornando conteúdo em Base64.

Casos de uso: - Recuperar documentos previamente enviados - Processar dados em lote - Reenviar arquivos ao usuário - Validar existência de arquivos

Parâmetros principais: - bucketName - Bucket origem - key - Caminho do arquivo

Retorna: - content - Arquivo em Base64 - contentType - Tipo do arquivo - metadata - Metadados customizados


3. S3 LIST - Listar Objetos no Bucket

Lista arquivos e pastas armazenados no bucket com filtros.

Casos de uso: - Descobrir quais arquivos existem - Filtrar por pasta (prefix) - Auditoria de uploads - Processar arquivos em lote

Parâmetros principais: - bucketName - Bucket a listar - prefix - Filtro por pasta (opcional) - maxKeys - Limite de resultados (padrão: 1000)

Retorna: - objects - Array de objetos com Key, Size, LastModified - count - Quantidade de objetos


4. S3 DELETE - Deletar Arquivo do S3

Remove permanentemente arquivos do bucket.

Casos de uso: - Remover arquivos temporários - LGPD - deletar dados de usuários - Limpeza de backups antigos - Gerenciar espaço no bucket

Parâmetros principais: - bucketName - Bucket - key - Arquivo a deletar

ATENÇÃO: Operação irreversível sem versionamento!


5. S3 COPY - Copiar Arquivo entre Buckets/Pastas

Copia arquivos server-side (sem download/upload).

Casos de uso: - Backup entre buckets - Reorganizar estrutura de pastas - Replicação manual cross-region - Criar versões com novos nomes

Parâmetros principais: - sourceBucket + sourceKey - Origem - destinationBucket + destinationKey - Destino

Vantagem: 100% server-side, muito mais rápido!


Configuração AWS

1. Criar Access Key

AWS Console → IAM → Users → Security credentials → Create access key

Você receberá: - Access Key ID (ex: AKIAIOSFODNN7EXAMPLE) - Secret Access Key (ex: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)

2. Criar Bucket S3

AWS Console → S3 → Create bucket

Configurações: - Nome único (ex: minha-empresa-uploads) - Região (ex: sa-east-1 para São Paulo) - Permissões (Block public access se privado)

3. Permissões IAM Necessárias

Para todas as operações S3, configure estas permissões:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::seu-bucket",
        "arn:aws:s3:::seu-bucket/*"
      ]
    }
  ]
}

IMPORTANTE: - ListBucket é no bucket (sem /*) - Outras permissões são em objetos (com /*)


Regiões AWS Comuns

Região Código Localização
Norte da Virgínia us-east-1 EUA Leste
Oregon us-west-2 EUA Oeste
São Paulo sa-east-1 Brasil
Irlanda eu-west-1 Europa
Frankfurt eu-central-1 Europa
Tóquio ap-northeast-1 Ásia

Tipos MIME Comuns (ContentType)

Arquivo ContentType
Texto text/plain
PDF application/pdf
JSON application/json
JPG image/jpeg
PNG image/png
MP4 video/mp4
CSV text/csv
ZIP application/zip

ACL (Access Control List)

ACL Descrição
private Apenas você com credenciais (padrão)
public-read Leitura pública (qualquer um baixa)
public-read-write Leitura e escrita pública (PERIGOSO!)
authenticated-read Apenas usuários AWS autenticados

Boas Práticas Gerais

Segurança

SIM: - Use IAM roles com permissões mínimas necessárias - NUNCA exponha Access Keys no código (use variáveis de ambiente) - Ative versionamento para recuperação de arquivos - Use ACL private para dados sensíveis - Configure lifecycle policies para deletar arquivos antigos - Habilite S3 Server Access Logging para auditoria

NÃO: - Nunca use ACL public-read-write (qualquer um pode modificar!) - Não compartilhe Access Keys entre sistemas - Não armazene credenciais em variáveis do flow visíveis - Não ignore solicitações LGPD de exclusão de dados

Organização

SIM: - Organize em "pastas" lógicas usando prefixos - Padrão recomendado: categoria/ano/mes/arquivo - Inclua data ou timestamp em nomes de backup - Agrupe por cliente/usuário: uploads/cliente-123/

Exemplos de estrutura:

documentos/
  cliente-123/
    rg.jpg
    cpf.jpg
  cliente-456/
    rg.jpg
backups/
  2025/
    01/
      backup-2025-01-15.json
      backup-2025-01-16.json
temp/
  processing-abc123.tmp

Performance

SIM: - Use S3 Transfer Acceleration para uploads grandes - Considere CloudFront + S3 para distribuição de conteúdo - Para múltiplas operações, use batch operations - Copy é server-side (muito mais rápido)

NÃO: - Não faça operações sequenciais de milhares de arquivos - Não use download+upload quando COPY resolve - Não coloque milhões de arquivos na raiz do bucket

Custos

SIM: - Configure lifecycle policies para transição automática para classes mais baratas - Use S3 Intelligent-Tiering para otimizar custos - Delete arquivos temporários após processamento - Considere S3 Glacier para backups de longo prazo

Custos S3: - Armazenamento: ~$0.023/GB/mês (STANDARD) - Transferência de saída: ~$0.09/GB - Requisições: ~$0.0004 por 1000 GET


Fluxo Típico de Uso

Upload de Documento do Usuário

START → MESSAGE (solicitar) → MEDIA (receber) → S3 UPLOAD → MESSAGE (confirmar) → END

Processar e Limpar

START → S3 UPLOAD (temp) → PROCESSAR → S3 COPY (permanente) → S3 DELETE (temp) → END

Backup Diário

SCHEDULE → S3 COPY (criar backup datado) → MESSAGE (notificar) → END

Listar e Reenviar

START → S3 LIST → CONDITION → S3 DOWNLOAD → MEDIA (enviar) → END

Troubleshooting

Erro: Access Denied

Causa: Permissões IAM insuficientes

Solução: Adicione permissão específica (PutObject, GetObject, etc.)

Erro: NoSuchBucket

Causa: Bucket não existe ou região errada

Solução: Verifique nome do bucket e região

Erro: NoSuchKey

Causa: Arquivo não existe no caminho especificado

Solução: Use S3 LIST para verificar keys disponíveis

Upload retorna URL inválida

Causa: ACL não é public-read

Solução: Configure acl: "public-read" no upload


Próximos Passos

  1. Configure sua Access Key no IAM
  2. Crie um bucket S3 para testes
  3. Teste cada operação com flows de exemplo
  4. Implemente em flows de produção
  5. Configure lifecycle policies
  6. Habilite versionamento
  7. Configure CloudTrail para auditoria


Total de operações documentadas: 5/5

Última atualização: 2025-01-15