Kaique Mitsuo Silva Yamamoto
EspiritualidadeEstudos Simbólicos

Sprint 20: A Galeria e os Guardiões

Implementação da gestão de mídia e usuários sob a ótica da Temperança.

Sprint 20: A Galeria e os Guardiões

Chegamos ao momento de organizar as imagens que decoram as paredes do nosso templo e definir quem são seus guardiões. Sob a regência da Temperança, transformamos o caos de arquivos em uma galeria ordenada.

Ⅰ. O Embasamento Filosófico: A Alquimia da Integração

Temperança e a Gestão de Ativos

A Temperança é representada pelo anjo que verte líquidos entre duas taças. No CMS, isso simboliza o fluxo de mídia entre o armazenamento (S3/MinIO) e a visualização. Gerenciar mídia não é apenas "guardar arquivos", é garantir que a imagem certa esteja no lugar certo, na resolução correta, servindo ao propósito da comunicação.

Os Guardiões (Usuários) representam a hierarquia sagrada. Nem todos podem entrar no Santo dos Santos; cada um tem seu papel — do Viewer ao Super Admin — garantindo a proteção da estrutura.

"Onde há ordem no acesso, há segurança na alma do projeto."


Ⅱ. O Embasamento Técnico: Ativos na Nuvem

Para a Galeria de Mídia, adotamos padrões modernos de performance e escalabilidade.

Arquitetura de S3/MinIO no Next.js 15

Utilizamos a estratégia de Presigned URLs para uploads, garantindo que o servidor Next.js não se torne um gargalo.

Pontos Chave:

  1. Otimização de Imagem: Uso do componente next/image com remotePatterns para servir formatos modernos (WebP/AVIF).
  2. Upload Direto: O cliente recebe uma autorização temporária e faz o upload diretamente para o bucket, reduzindo a latência.
  3. Segurança de Guardiões: JWT e Roles baseadas em sessões seguras no backend Go.

Tutorial Recomendado

Para entender a integração de Next.js com armazenamento S3/Cloud:


Ⅲ. Implementação: O Salão das Imagens

Nesta sprint, consagramos os componentes de gestão visual:

  1. MediaGallery.tsx: O grid responsivo para visualização dos ativos.
  2. UploadDropzone.tsx: O portal de entrada para novas mídias.

Ver Código Fonte dos Componentes →


Voltar para o Ato II

On this page