77 lines
2.8 KiB
JavaScript
77 lines
2.8 KiB
JavaScript
// 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();
|