1. 首先配置minio的信息
// 上传文件需要的配置
const Minio = require('minio');
// minio配置信息
export const minioClient = new Minio.Client({
endPoint: '10.874.69.12', //url
port: 9000, //端口
useSSL: false, // 协议 false表示http
accessKey: 'minio', //账户
secretKey: 'minio' //密码
});
2. 调用minioClient.putObject上传图片
export default class Upload extends Component {
render() {
const props = {
customRequest: (info) => {
const { file } = info;
const reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = () => {
const arrayBuffer = reader.result;
// 将数据转化为minio支持的格式
const stream = Buffer.from(arrayBuffer);
// 获取文件类型及大小
const fileName = info.file.name
const mineType = info.file.type
const fileSize = info.file.size
// 参数
const metadata = {
"content-type": mineType,
"content-length": fileSize
}
// 上传
minioClient.putObject('buketname', fileName, stream, fileSize, metadata, err => {
if (!err) {
info.onSuccess(); // 设置图片上传状态,表示图片上传成功
}
})
};
},
onChange: (info) => {
if (info.file.status === 'done') {
message.success(`${info.file.name} 文件上传成功`);
} else if (info.file.status === 'error') {
message.error(`${info.file.name} 文件上传失败`);
}
},
name: 'file',
headers: {
authorization: 'authorization-text',
},
};
return (
<div>
<Upload {...props}>
<Button>上传文件</Button>
</Upload>
</div>
);
}
}