Files
App-Estoque-LiberiKids/CRIAR-BUCKET-PASSO-A-PASSO.md
2025-11-29 21:31:52 -03:00

4.1 KiB

📸 Como Criar o Bucket 'catalogo' - Passo a Passo

Problema

Ao tentar adicionar fotos em Site / Catalogo, aparece erro porque o bucket catalogo não existe.

Solução Rápida (5 minutos)

🎯 Opção 1: Via Interface (Mais Fácil)

  1. Acesse o Supabase Dashboard

  2. Selecione seu Projeto

    • Clique no projeto "Liberi Kids" (ou o nome que você deu)
  3. Vá para Storage

    • No menu lateral esquerdo, clique em "Storage"
    • Clique no botão "Create a new bucket" (ou "New bucket")
  4. Configure o Bucket

    • Name: catalogo (exatamente assim, minúsculo)
    • Public bucket: MARQUE ESTA OPÇÃO (muito importante!)
    • File size limit: 5 MB
    • Allowed MIME types: (deixe vazio ou adicione):
      • image/jpeg
      • image/jpg
      • image/png
      • image/webp
      • image/gif
  5. Criar o Bucket

    • Clique em "Create bucket"
    • Aguarde a confirmação
  6. Configurar Políticas de Segurança (IMPORTANTE!)

    • Vá em SQL Editor (menu lateral)
    • Clique em "New Query"
    • Cole o código abaixo:
-- Política de leitura pública
CREATE POLICY "Permitir leitura pública catalogo"
ON storage.objects FOR SELECT
USING (bucket_id = 'catalogo');

-- Política de upload
CREATE POLICY "Permitir upload autenticado catalogo"
ON storage.objects FOR INSERT
WITH CHECK (
  bucket_id = 'catalogo' AND
  (auth.role() = 'authenticated' OR auth.role() = 'service_role')
);

-- Política de atualização
CREATE POLICY "Permitir update autenticado catalogo"
ON storage.objects FOR UPDATE
USING (
  bucket_id = 'catalogo' AND
  (auth.role() = 'authenticated' OR auth.role() = 'service_role')
);

-- Política de exclusão
CREATE POLICY "Permitir delete autenticado catalogo"
ON storage.objects FOR DELETE
USING (
  bucket_id = 'catalogo' AND
  (auth.role() = 'authenticated' OR auth.role() = 'service_role')
);
  • Clique em "Run" (ou F5)
  • Aguarde a mensagem de sucesso
  1. Testar
    • Volte para o sistema
    • Acesse Site / Catalogo
    • Clique em "Fotos" em qualquer produto
    • Tente adicionar uma foto
    • Deve funcionar!

🎯 Opção 2: Via SQL (Mais Rápido se você sabe SQL)

  1. Acesse o Supabase Dashboard
  2. Vá em SQL Editor
  3. Copie todo o arquivo: sql/setup-bucket-catalogo.sql
  4. Cole no editor
  5. Execute (Run)
  6. Verifique as mensagens de sucesso

🔍 Verificar se Funcionou

Execute este comando para testar:

node test-upload-catalogo.js

Se aparecer:

✅ Bucket "catalogo" existe!
✅ Upload teste realizado com sucesso!
🎉 TODOS OS TESTES PASSARAM!

Então está tudo certo!


Troubleshooting

Erro: "new row violates row-level security policy"

Causa: Políticas RLS não configuradas
Solução: Execute o passo 6 acima (políticas SQL)

Erro: "Bucket already exists"

Causa: Bucket já foi criado
Solução: Pule para o passo 6 (configurar políticas)

Upload ainda não funciona

Verifique:

  1. Bucket marcado como "Public"
  2. Políticas RLS criadas
  3. Servidor reiniciado (se necessário)

Fotos não aparecem no site

Verifique:

  1. Bucket é público
  2. URL correta: https://...supabase.co/storage/v1/object/public/catalogo/...

📋 Checklist Final

Antes de usar o sistema de fotos, verifique:

  • Bucket catalogo criado
  • Bucket marcado como Public
  • Limite de 5MB configurado
  • 4 políticas RLS criadas (SELECT, INSERT, UPDATE, DELETE)
  • Teste executado com sucesso
  • Upload funciona no painel admin
  • Fotos aparecem no site público

🎉 Pronto!

Depois de seguir estes passos, o sistema de fotos adicionais estará funcionando perfeitamente!

Você poderá:

  • Adicionar fotos extras para cada produto
  • Ver galeria completa no site
  • Gerenciar fotos pelo painel admin
  • Deletar fotos individuais

Precisa de ajuda? Verifique os logs do navegador (F12 > Console) para ver erros específicos.