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();
|