Files
App-Estoque-LiberiKids/criar-bucket-catalogo.js
2025-11-29 21:31:52 -03:00

77 lines
2.8 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Script para criar automaticamente o bucket 'catalogo'
require('dotenv').config();
const { createClient } = require('@supabase/supabase-js');
const supabaseUrl = process.env.SUPABASE_URL;
const supabaseKey = process.env.SUPABASE_SERVICE_KEY || process.env.SUPABASE_ANON_KEY;
if (!supabaseUrl || !supabaseKey) {
console.error('❌ Configure as variáveis de ambiente no arquivo .env');
process.exit(1);
}
const supabase = createClient(supabaseUrl, supabaseKey);
async function criarBucketCatalogo() {
console.log('🚀 Criando bucket "catalogo"...\n');
try {
// Verificar se já existe
const { data: buckets } = await supabase.storage.listBuckets();
const existe = buckets?.find(b => b.id === 'catalogo');
if (existe) {
console.log('✅ Bucket "catalogo" já existe!');
console.log(' - Público:', existe.public);
console.log('\n✨ Tudo certo! Você já pode usar o sistema de fotos.');
return;
}
// Criar bucket
const { data, error } = await supabase.storage.createBucket('catalogo', {
public: true,
fileSizeLimit: 5242880, // 5MB
allowedMimeTypes: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp', 'image/gif']
});
if (error) {
console.error('❌ Erro ao criar bucket:', error.message);
console.log('\n💡 Solução alternativa:');
console.log(' 1. Acesse o Supabase Dashboard');
console.log(' 2. Vá em Storage > Create a new bucket');
console.log(' 3. Nome: catalogo');
console.log(' 4. Marque "Public bucket"');
console.log(' 5. File size limit: 5MB');
return;
}
console.log('✅ Bucket "catalogo" criado com sucesso!');
console.log('\n📋 Próximo passo: Configurar políticas RLS');
console.log(' Execute o script SQL para configurar as permissões:');
console.log(' sql/setup-bucket-catalogo.sql');
console.log('\n Ou continue e eu tento configurar automaticamente...');
// Aguardar 2 segundos
await new Promise(resolve => setTimeout(resolve, 2000));
console.log('\n🔐 Configurando políticas de acesso...');
// Nota: Políticas RLS precisam ser criadas via SQL
// O SDK do Supabase não suporta criação de políticas diretamente
console.log('\n⚠ IMPORTANTE:');
console.log(' Para o bucket funcionar completamente, você DEVE executar');
console.log(' o script SQL para criar as políticas de segurança:');
console.log('\n 1. Abra o Supabase Dashboard');
console.log(' 2. Vá em SQL Editor');
console.log(' 3. Cole o conteúdo de: sql/setup-bucket-catalogo.sql');
console.log(' 4. Execute (Run)');
console.log('\n Sem as políticas, o upload NÃO funcionará!');
} catch (error) {
console.error('\n❌ Erro:', error.message);
}
}
criarBucketCatalogo();