chore: sincroniza projeto para gitea
This commit is contained in:
126
test-upload-catalogo.js
Normal file
126
test-upload-catalogo.js
Normal file
@@ -0,0 +1,126 @@
|
||||
// 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();
|
||||
Reference in New Issue
Block a user