Tengo un problema con la url prefirmada de Minio, pude obtener la url y usar el método PUT para insertar mi archivo en mi depósito de Minio, pero no pude abrirlo, especialmente cuando es un jpg, un png o un pdf porque Minio lo modifica automáticamente y agrega un encabezado y un pie de página al archivo, lo que lo hace ilegible como imagen
ejemplo de encabezado:
----------- 591397828093304071314847 Content-Disposition: form-data; name="file"; filename="y.png" Content-Type: image/pngEsto es lo que obtuve cuando lo descargué usando PresignedGetObject. El problema está en los metadatos agregados por minio.
ingrese la descripción de la imagen aquí
Estoy usando Nodejs, aquí está mi código:
servicio.js:
exports.presignedurl = async (filename) => { return await minioClient.presignedPutObject( process.env.MINIO_BUCKET, filename ); }; exports.getpresignedurl = async (filename) => { return await minioClient.presignedGetObject( process.env.MINIO_BUCKET, filename, 24 * 60 * 60 ); };controlador.js
exports.presignedurl = async (req = null, res = null) => { try { let filename = req.query.filename; let result = await StorageService.presignedurl(filename); res.status(200).json(result); } catch (err) { res.status(405).send({ error: err.message, code: err.code }); } }; exports.getpresignedurl = async (req = null, res = null) => { try { let filename = req.query.filename; let result = await StorageService.getpresignedurl(filename); res.status(200).json(result); } catch (err) { res.status(405).send({ error: err.message, code: err.code }); } };La clave en este caso es cómo se carga el archivo desde el cartero. Al cargar el archivo, debe usar Cuerpo > Binario > Seleccionar archivo, en lugar de usar Cuerpo > Datos de formulario.