须知:
Minio的官方客户端使用时依赖node.js, vite不支持require导入,minio不支持import引入,会报错
有能力的话,
1.可以自己使用vue2搭个项目,将minio通过require方式导入,再进行导出, 上传到npm,然后再npm install 一下上传对的 包就可以使用了
2.把minio的使用打包为纯js,可以在浏览器中直接调用minio的客户端
3.使用已经封装好的包(我们采用这种方式,npm包地址:https://www.npmjs.com/package/minio-js)
安装
npm i minio-js
调用
import { initMinio, putObject } from 'minio-js'
<input ref="input" type="file" @change="handleFiles" />
//ts
function handleFiles(event: any) {
try {
var f = event.target.files[0];
let reader = new FileReader();
reader.readAsArrayBuffer(f);
reader.onload = function (e: any) {
let res = e.target.result; //ArrayBuffer
//初始化
initMinio({
endPoint: '192.168.x.xxx',
port: 9000,
useSSL: false,
accessKey: 'xxxxx',
secretKey: 'xxxxx',
});
//上传,callback是回调函数
putObject('videocx', res, f.name, callback);
};
} catch (error) {
ElMessage({
showClose: true,
message: '错误:' + error,
type: 'error',
duration: 0,
});
}
}
function callback(err, data) {
if (err) {
ElMessage({
showClose: true,
message: '上传失败,错误:' + err.message,
type: 'error',
duration: 0,
});
} else {
ElMessage({
showClose: true,
message: '上传成功',
type: 'success',
});
}
}