Files
App-Estoque-LiberiKids/SOLUCAO-ERRO-UPLOAD.md
2025-11-29 21:31:52 -03:00

174 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔧 Solução: Erro ao Adicionar Fotos
## ✅ Bucket Criado com Sucesso!
Vejo na imagem que o bucket `catalogo` foi criado e está marcado como **Public**. Perfeito! 👍
## ❌ O Problema
Faltam as **políticas de segurança (RLS)** que permitem upload, update e delete.
## 🚀 Solução Rápida (2 minutos)
### Passo 1: Executar SQL
1. No Supabase, clique em **SQL Editor** (menu lateral esquerdo)
2. Clique em **"New Query"**
3. Cole o código abaixo:
```sql
-- Remover políticas antigas se existirem
DROP POLICY IF EXISTS "Permitir leitura pública catalogo" ON storage.objects;
DROP POLICY IF EXISTS "Permitir upload catalogo" ON storage.objects;
DROP POLICY IF EXISTS "Permitir update catalogo" ON storage.objects;
DROP POLICY IF EXISTS "Permitir delete catalogo" ON storage.objects;
-- 1. Leitura pública
CREATE POLICY "Permitir leitura pública catalogo"
ON storage.objects FOR SELECT
USING (bucket_id = 'catalogo');
-- 2. Upload
CREATE POLICY "Permitir upload catalogo"
ON storage.objects FOR INSERT
WITH CHECK (bucket_id = 'catalogo');
-- 3. Update
CREATE POLICY "Permitir update catalogo"
ON storage.objects FOR UPDATE
USING (bucket_id = 'catalogo');
-- 4. Delete
CREATE POLICY "Permitir delete catalogo"
ON storage.objects FOR DELETE
USING (bucket_id = 'catalogo');
```
4. Clique em **"Run"** ou pressione **F5**
5. Aguarde a mensagem de sucesso
### Passo 2: Testar
1. Volte para o sistema (recarregue a página se necessário)
2. Acesse **Site / Catalogo**
3. Clique no botão **"Fotos"** de qualquer produto
4. Clique em **"Adicionar Nova Foto"**
5. Selecione uma imagem
6. Deve funcionar! ✅
## 🔍 Como Verificar se as Políticas Foram Criadas
Execute este SQL para verificar:
```sql
SELECT
policyname,
cmd as "Comando",
CASE
WHEN cmd = 'SELECT' THEN 'Leitura'
WHEN cmd = 'INSERT' THEN 'Upload'
WHEN cmd = 'UPDATE' THEN 'Atualização'
WHEN cmd = 'DELETE' THEN 'Exclusão'
END as "Tipo"
FROM pg_policies
WHERE tablename = 'objects'
AND schemaname = 'storage'
AND policyname LIKE '%catalogo%'
ORDER BY policyname;
```
**Resultado esperado:** 4 políticas (SELECT, INSERT, UPDATE, DELETE)
## 🐛 Se Ainda Não Funcionar
### 1. Verifique o Console do Navegador
1. Pressione **F12** no navegador
2. Vá na aba **Console**
3. Tente fazer upload novamente
4. Veja a mensagem de erro
### 2. Mensagens de Erro Comuns
**"new row violates row-level security policy"**
- **Causa:** Políticas RLS não foram criadas
- **Solução:** Execute o SQL acima novamente
**"Payload too large"**
- **Causa:** Arquivo maior que 5MB
- **Solução:** Use uma imagem menor
**"Invalid file type"**
- **Causa:** Tipo de arquivo não permitido
- **Solução:** Use apenas JPEG, PNG, WebP ou GIF
**"Network error" ou "Failed to fetch"**
- **Causa:** Servidor offline
- **Solução:** Verifique se o servidor está rodando
### 3. Verificar Servidor
No terminal, veja se há erros:
```bash
# Verificar se está rodando
curl http://localhost:5000/api/produtos
# Ver logs em tempo real
tail -f logs/*.log
```
## 📊 Estrutura Esperada
Depois do upload bem-sucedido, você verá no Supabase Storage:
```
catalogo/
└── produto_{id}/
├── 1729765432123-foto1.jpg
├── 1729765433456-foto2.png
└── 1729765434789-foto3.webp
```
## ✅ Melhorias Implementadas
Atualizei o código para:
- ✅ Validar tipo de arquivo (JPEG, PNG, WebP, GIF)
- ✅ Validar tamanho (máx 5MB)
- ✅ Mostrar mensagem de erro específica
- ✅ Limpar input após upload
- ✅ Logs detalhados no console
## 🎯 Próximos Passos
Depois que funcionar:
1. **Teste a Galeria no Site**
- Abra: `http://localhost:5000/site/`
- Clique em um produto
- Veja se as fotos extras aparecem
2. **Teste Exclusão de Fotos**
- Volte ao painel admin
- Abra "Fotos" de um produto
- Passe o mouse sobre uma foto
- Clique no "×" vermelho
3. **Verificar Performance**
- As fotos carregam rápido?
- A galeria funciona suavemente?
## 📝 Checklist
- [ ] Bucket `catalogo` criado ✅ (você já fez!)
- [ ] Bucket marcado como Public ✅ (você já fez!)
- [ ] Executar SQL das políticas RLS
- [ ] Testar upload de foto
- [ ] Ver foto no Storage do Supabase
- [ ] Ver foto na galeria do site
---
**Após executar o SQL das políticas, deve funcionar perfeitamente!** 🚀
Se ainda tiver problemas, compartilhe:
1. Mensagem de erro do console do navegador (F12)
2. Screenshot da aba "Policies" do bucket no Supabase