MInio 预签名 url 上传问题
MInio presigned url upload issue
我对 Minio 预签名有问题 url ,我已经能够获得 url 并使用 PUT 方法将我的文件插入我的 Minio 存储桶,但我不能打开它,尤其是当它是 jpg 、 png 或 pdf 文件时,因为它会被 Minio 自动修改,并在文件中添加 header 和页脚,这使得它无法作为图像
读取
header的例子:
----------- 591397828093304071314847
Content-Disposition: form-data; name="file"; filename="y.png"
Content-Type: image/png
这是我使用 presignedGetObject 下载它时得到的
问题出在 minio 添加的元数据上。
enter image description here
我正在使用 Nodejs,这是我的代码:
service.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
);
};
controller.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 });
}
};
本例的关键在于邮递员是如何上传文件的。上传文件时,您需要使用 Body > Binary > Select File,而不是使用 Body > Form-Data.
来源:
我对 Minio 预签名有问题 url ,我已经能够获得 url 并使用 PUT 方法将我的文件插入我的 Minio 存储桶,但我不能打开它,尤其是当它是 jpg 、 png 或 pdf 文件时,因为它会被 Minio 自动修改,并在文件中添加 header 和页脚,这使得它无法作为图像
读取header的例子:
----------- 591397828093304071314847
Content-Disposition: form-data; name="file"; filename="y.png"
Content-Type: image/png
这是我使用 presignedGetObject 下载它时得到的 问题出在 minio 添加的元数据上。
enter image description here
我正在使用 Nodejs,这是我的代码:
service.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
);
};
controller.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 });
}
};
本例的关键在于邮递员是如何上传文件的。上传文件时,您需要使用 Body > Binary > Select File,而不是使用 Body > Form-Data.
来源: