feat(storage): reorganiza Wasabi com estrutura clinic_name/pc_name/patient_name
continuous-integration/webhook Deploy concluído (VPS4)
continuous-integration/webhook Deploy concluído (VPS4)
- Adiciona coluna clinic_name em images (ALTER TABLE IF NOT EXISTS) - Todas as funções de storage recebem clinicName como parâmetro: saveImage, getImageBuffer, getImageUrl, deleteImage, getDownloadPresignedUrl, getUploadPresignedUrl - Chave Wasabi passa de pc_name/patient/arquivo → clinic_name/pc_name/patient/arquivo - server.js: usa socket.user.clinicName (preenchido via machine_token auth do DB) como fonte primária do nome da clínica nos 3 handlers de upload e na rota thumbnail - Todos os INSERTs em images passam a gravar clinic_name - Corrige bug oculto: wipe de clínica agora apaga o prefixo correto no Wasabi - Scripts utilitários atualizados: backfill-wasabi-thumbs, recreate-all-thumbs, migrate-to-wasabi - client-monitor.js: envia clinicName no client-identify (fallback para clientes legados) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -15,8 +15,8 @@ async function run() {
|
||||
|
||||
// Buscar todas as imagens que possuem miniatura
|
||||
const rows = await db.all(`
|
||||
SELECT id, filename, thumb_filename, client_name, patient_name
|
||||
FROM images
|
||||
SELECT id, filename, thumb_filename, clinic_name, client_name, patient_name
|
||||
FROM images
|
||||
WHERE thumb_filename IS NOT NULL AND enabled = 1
|
||||
`);
|
||||
|
||||
@@ -30,7 +30,7 @@ async function run() {
|
||||
|
||||
try {
|
||||
// 1. Obter URL de download do Wasabi (baixar a ORIGINAL, não a miniatura pesada)
|
||||
const url = await storage.getDownloadPresignedUrl(row.filename, row.client_name, row.patient_name);
|
||||
const url = await storage.getDownloadPresignedUrl(row.filename, row.clinic_name, row.client_name, row.patient_name);
|
||||
if (!url) {
|
||||
console.error(`❌ Não foi possível gerar URL para a imagem original ${row.filename}`);
|
||||
failCount++;
|
||||
@@ -52,7 +52,7 @@ async function run() {
|
||||
const thumbBuffer = await imageProcessor.getThumbnail(imageBuffer, 400, 400);
|
||||
|
||||
// 4. Salvar miniatura substituindo a antiga
|
||||
await storage.saveImage(row.thumb_filename, thumbBuffer, row.client_name, row.patient_name, false);
|
||||
await storage.saveImage(row.thumb_filename, thumbBuffer, row.clinic_name, row.client_name, row.patient_name, false);
|
||||
|
||||
console.log(`✅ Miniatura ultra-leve gerada e salva com sucesso para ID ${row.id} (${thumbBuffer.length} bytes)`);
|
||||
successCount++;
|
||||
|
||||
Reference in New Issue
Block a user