纯前端使用Vue3上传文件到minio文件服务器,粘贴直接可用
时间:2024-04-03 15:25:36 来源:网络cs 作者:康由 栏目:其他工具 阅读:
1、首先安装minio的插件,因为我使用的vue3,不支持模块化的导入,所以我们使用一个别人写好的vue2的包
npm install --save minio-js
2、在需要上传文件的页面导入这个包
import { Minio } from "minio-js";
3、创建一个minio的客户端
minioClient = new Minio.Client({ endPoint: '192.168.1.111', // minio的ip,直接替换自己的即可 port: 9000, // 端口号,若地址为类似test.minio.com,就不必写端口号 useSSL: false, // 是否使用ssl accessKey: accessKey, // 登录的accessKey secretKey: secretKey, sessionToken: token, });
这里说明一下,accessKey、secretKey、sessionToken都是通过接口获取到的临时凭证
4、通过带预签名的url上传,首先我们需要获取到这个url,minioAPI提供了, minioClient.presignedPutObject可以获取带签名的URL
function uploadByUrl(url, data) { loadding.value = true; return fetch(url, { mode: "cors", // 解决跨域 headers: { Accept: "application/json,text/plain,/", }, method: "PUT", body: data,//data就是文件对象 }).then((response) => { if (response.ok) { // 处理成功的情况 loadding.value = false; proxy.$modal.msgSuccess("上传成功"); } else { // 处理失败的情况 proxy.$refs["my-upload"].clearFiles(); throw new Error("上传失败,请重新上传!"); } });}//获取上传的URLminioClient.presignedPutObject( bucketName,//桶名称 fileName,//文件名称 1000 * 60 * 5,//URL有效期 function (err, presignedUrl) {//错误的回调方法 if (err) return console.log(err); let url = presignedUrl; uploadByUrl(url, fileObj.value); } );
本文链接:https://www.kjpai.cn/news/2024-04-03/153362.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
上一篇:Linux命令大全:2W多字,一次实现Linux自由
下一篇:返回列表