Destaques
- Debug ao vivo da migração de imagens para bucket Oracle Cloud Infrastructure (OCI), usando o driver
s3/oracle-s3do Flysystem no Laravel: erro inicial "namespace não autorizado ou bucket não encontrado" resolvido ajustando a policy IAM (manage object-family, manage buckets) e corrigindo a URL pré-autenticada (PAR) — distinção entre a URL de leitura pública e o endpoint de escrita, que estavam invertidos. - Causa raiz do upload que "não subia": o Livewire grava um arquivo temporário no disco de destino antes de mover para a pasta final, e precisa de permissão de delete nessa pasta temporária no bucket; sem essa permissão o upload falhava silenciosamente, sem gravar no banco.
- Solução aplicada: configurar
livewire.phppara gravar o temporário num subdiretório dedicado (bucket/livewire-tmp), separado da pasta de produtos, com permissão de escrita e delete; alternativas discutidas foram usardisk('local')para o temporário do FileUpload do Filament ou desativar o cleanup automático. - Alerta de custo: alguns provedores de object storage cobram taxa se um arquivo for deletado antes de um período mínimo (o grupo citou o exemplo de 3 meses em outro serviço) — relevante para quem fica escrevendo e apagando temporários com frequência.
- Boa prática de modelagem discutida: gravar no banco apenas o nome do arquivo, mantendo o path/bucket base numa configuração à parte, para permitir trocar de bucket, região ou provedor sem precisar migrar dados.
- Ponto em aberto: uma pasta extra, com o próprio nome do bucket, aparecia aninhada no path final sem explicação clara no código do projeto; suspeita recaiu sobre o FilePond (a lib JS usada por baixo do upload do Livewire) ou sobre a montagem da URL do endpoint OCI — ficou como tarefa para investigação posterior entre Virgo e Matheus.
- Anúncio de agenda: próximo workshop em 25/02, às 19h, com um projeto usando Laravel Reverb em esquema multissala e um bot LLM como oponente quando falta um segundo jogador — ideia trazida por Guilherme.
- Atualizações de comunidade: Marcelão migrando seus plugins Filament (File Manager e Terminal SSH) da v4 para a v5 e mantendo um registro privado próprio de pacotes Composer/NPM/Docker; João testando o Claude Agent SDK rodando local com a própria conta Anthropic, sem custo adicional de API.
Você viu uma amostra. A versão completa — com o código, a gravação e a discussão desse encontro — fica dentro do Clã Beer and Code, junto com um encontro novo ao vivo toda semana.
Entrar no Clã e desbloquearEngenharia de IA virou profissão, e se aprende construindo, não assistindo. O Clã Beer and Code é o ambiente onde isso acontece ao vivo, toda semana: RAG, agentes, observabilidade e LLMOps em projetos reais, ao lado de quem já está em produção. É pago, é assinatura, e é exatamente o ambiente que estes encontros dão uma amostra.
Entrar no Clã