From ad16a50008ad15ae62f35affbe51e9445f7321c9 Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 27 Nov 2025 13:59:00 -0300 Subject: [PATCH] fix: downgrade MinIO SDK para 7.1.3 com pathStyle --- frontend/package-lock.json | 66 +++++++++++++++++--------------------- frontend/package.json | 2 +- frontend/src/lib/minio.ts | 7 ++-- 3 files changed, 34 insertions(+), 41 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ac9944a..088593a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12,7 +12,7 @@ "bcryptjs": "^3.0.3", "date-fns": "^4.1.0", "jsonwebtoken": "^9.0.2", - "minio": "^8.0.6", + "minio": "^7.1.3", "next": "15.1.0", "next-themes": "^0.4.6", "pg": "^8.16.3", @@ -2300,12 +2300,12 @@ "license": "MIT" }, "node_modules/buffer-crc32": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", - "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": "*" } }, "node_modules/buffer-equal-constant-time": { @@ -3090,6 +3090,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -3336,12 +3337,6 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4369,6 +4364,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-stream/-/json-stream-1.0.0.tgz", + "integrity": "sha512-H/ZGY0nIAg3QcOwE1QN/rK/Fa7gJn7Ii5obwp6zyPO4xiPNwpIMjqy2gwjBEGqzkF/vSWEIBQCBuN19hYiL6Qg==", + "license": "MIT" + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -4924,25 +4925,25 @@ } }, "node_modules/minio": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/minio/-/minio-8.0.6.tgz", - "integrity": "sha512-sOeh2/b/XprRmEtYsnNRFtOqNRTPDvYtMWh+spWlfsuCV/+IdxNeKVUMKLqI7b5Dr07ZqCPuaRGU/rB9pZYVdQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minio/-/minio-7.1.3.tgz", + "integrity": "sha512-xPrLjWkTT5E7H7VnzOjF//xBp9I40jYB4aWhb2xTFopXXfw+Wo82DDWngdUju7Doy3Wk7R8C4LAgwhLHHnf0wA==", "license": "Apache-2.0", "dependencies": { "async": "^3.2.4", "block-stream2": "^2.1.0", "browser-or-node": "^2.1.1", - "buffer-crc32": "^1.0.0", - "eventemitter3": "^5.0.1", - "fast-xml-parser": "^4.4.1", + "buffer-crc32": "^0.2.13", + "fast-xml-parser": "^4.2.2", "ipaddr.js": "^2.0.1", + "json-stream": "^1.0.0", "lodash": "^4.17.21", "mime-types": "^2.1.35", "query-string": "^7.1.3", - "stream-json": "^1.8.0", "through2": "^4.0.2", "web-encoding": "^1.1.5", - "xml2js": "^0.5.0 || ^0.6.2" + "xml": "^1.0.1", + "xml2js": "^0.5.0" }, "engines": { "node": "^16 || ^18 || >=20" @@ -6131,21 +6132,6 @@ "node": ">= 0.4" } }, - "node_modules/stream-chain": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", - "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", - "license": "BSD-3-Clause" - }, - "node_modules/stream-json": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz", - "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", - "license": "BSD-3-Clause", - "dependencies": { - "stream-chain": "^2.2.5" - } - }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -6879,10 +6865,16 @@ "node": ">=0.10.0" } }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "license": "MIT" + }, "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "license": "MIT", "dependencies": { "sax": ">=0.6.0", diff --git a/frontend/package.json b/frontend/package.json index 4422a5f..87ef5aa 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,7 +17,7 @@ "bcryptjs": "^3.0.3", "date-fns": "^4.1.0", "jsonwebtoken": "^9.0.2", - "minio": "^8.0.6", + "minio": "^7.1.3", "next": "15.1.0", "next-themes": "^0.4.6", "pg": "^8.16.3", diff --git a/frontend/src/lib/minio.ts b/frontend/src/lib/minio.ts index f887e7c..b2ec298 100644 --- a/frontend/src/lib/minio.ts +++ b/frontend/src/lib/minio.ts @@ -1,4 +1,4 @@ -import * as Minio from 'minio'; +import { Client } from 'minio'; const endpoint = process.env.MINIO_ENDPOINT || 'localhost'; const port = parseInt(process.env.MINIO_PORT || '9000'); @@ -6,13 +6,14 @@ const useSSL = process.env.MINIO_USE_SSL === 'true'; console.log(`[MinIO] Configurando cliente: ${endpoint}:${port} (SSL: ${useSSL})`); -export const minioClient = new Minio.Client({ +export const minioClient = new Client({ endPoint: endpoint, port: port, useSSL: useSSL, accessKey: process.env.MINIO_ACCESS_KEY || 'admin', secretKey: process.env.MINIO_SECRET_KEY || 'adminpassword', - region: 'us-east-1', // Força região para evitar lookup + region: 'us-east-1', + pathStyle: true, // IMPORTANTE: força path-style (endpoint/bucket) ao invés de virtual-hosted (bucket.endpoint) }); export const bucketName = process.env.MINIO_BUCKET_NAME || 'occto-images';