127 lines
4.0 KiB
JavaScript
127 lines
4.0 KiB
JavaScript
// Script de teste para verificar upload no 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('❌ Variáveis de ambiente não configuradas');
|
||
console.log('SUPABASE_URL:', supabaseUrl ? '✓' : '✗');
|
||
console.log('SUPABASE_KEY:', supabaseKey ? '✓' : '✗');
|
||
process.exit(1);
|
||
}
|
||
|
||
const supabase = createClient(supabaseUrl, supabaseKey);
|
||
|
||
async function testCatalogoBucket() {
|
||
console.log('🔍 Testando bucket "catalogo"...\n');
|
||
|
||
try {
|
||
// 1. Verificar se o bucket existe
|
||
console.log('1️⃣ Verificando se bucket existe...');
|
||
const { data: buckets, error: bucketsError } = await supabase
|
||
.storage
|
||
.listBuckets();
|
||
|
||
if (bucketsError) {
|
||
console.error('❌ Erro ao listar buckets:', bucketsError.message);
|
||
return;
|
||
}
|
||
|
||
const catalogoBucket = buckets.find(b => b.id === 'catalogo');
|
||
|
||
if (catalogoBucket) {
|
||
console.log('✅ Bucket "catalogo" existe!');
|
||
console.log(' - ID:', catalogoBucket.id);
|
||
console.log(' - Nome:', catalogoBucket.name);
|
||
console.log(' - Público:', catalogoBucket.public);
|
||
console.log('');
|
||
} else {
|
||
console.log('❌ Bucket "catalogo" NÃO existe!');
|
||
console.log('\n📋 Execute o script SQL para criar:');
|
||
console.log(' sql/setup-bucket-catalogo.sql\n');
|
||
return;
|
||
}
|
||
|
||
// 2. Testar criação de pasta
|
||
console.log('2️⃣ Testando criação de pasta...');
|
||
const testBuffer = Buffer.from('teste', 'utf-8');
|
||
const testPath = 'produto_test/test.txt';
|
||
|
||
const { data: uploadData, error: uploadError } = await supabase
|
||
.storage
|
||
.from('catalogo')
|
||
.upload(testPath, testBuffer, {
|
||
contentType: 'text/plain',
|
||
upsert: true
|
||
});
|
||
|
||
if (uploadError) {
|
||
console.error('❌ Erro ao fazer upload:', uploadError.message);
|
||
console.log('\n💡 Possíveis causas:');
|
||
console.log(' 1. Políticas RLS não configuradas');
|
||
console.log(' 2. Usando ANON_KEY em vez de SERVICE_KEY');
|
||
console.log(' 3. Bucket não é público');
|
||
console.log('\n📋 Execute o script SQL completo:');
|
||
console.log(' sql/setup-bucket-catalogo.sql\n');
|
||
return;
|
||
}
|
||
|
||
console.log('✅ Upload teste realizado com sucesso!');
|
||
console.log(' - Path:', uploadData.path);
|
||
console.log('');
|
||
|
||
// 3. Verificar URL pública
|
||
console.log('3️⃣ Verificando URL pública...');
|
||
const { data: urlData } = supabase
|
||
.storage
|
||
.from('catalogo')
|
||
.getPublicUrl(testPath);
|
||
|
||
console.log('✅ URL pública gerada:');
|
||
console.log(' ', urlData.publicUrl);
|
||
console.log('');
|
||
|
||
// 4. Listar arquivos
|
||
console.log('4️⃣ Listando arquivos...');
|
||
const { data: files, error: listError } = await supabase
|
||
.storage
|
||
.from('catalogo')
|
||
.list('produto_test');
|
||
|
||
if (listError) {
|
||
console.error('❌ Erro ao listar:', listError.message);
|
||
} else {
|
||
console.log('✅ Arquivos encontrados:', files.length);
|
||
files.forEach(file => {
|
||
console.log(' -', file.name);
|
||
});
|
||
console.log('');
|
||
}
|
||
|
||
// 5. Limpar teste
|
||
console.log('5️⃣ Limpando arquivo de teste...');
|
||
const { error: deleteError } = await supabase
|
||
.storage
|
||
.from('catalogo')
|
||
.remove([testPath]);
|
||
|
||
if (deleteError) {
|
||
console.error('❌ Erro ao deletar:', deleteError.message);
|
||
} else {
|
||
console.log('✅ Arquivo de teste removido');
|
||
}
|
||
|
||
console.log('\n🎉 TODOS OS TESTES PASSARAM!');
|
||
console.log('\n✅ O bucket "catalogo" está configurado corretamente.');
|
||
console.log('✅ Você pode usar o sistema de fotos adicionais.');
|
||
|
||
} catch (error) {
|
||
console.error('\n❌ Erro inesperado:', error.message);
|
||
console.error(error);
|
||
}
|
||
}
|
||
|
||
testCatalogoBucket();
|