当前位置: 代码网 > it编程>前端脚本>Vue.js > 纯前端使用Vue3上传文件到minio文件服务器(粘贴可直接用)

纯前端使用Vue3上传文件到minio文件服务器(粘贴可直接用)

2024年05月15日 Vue.js 我要评论
1、首先安装minio的插件,因为我使用的vue3,不支持模块化的导入,所以我们使用一个别人写好的vue2的包npm install --save minio-js 2、在需要上传文件的页面导入

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("上传失败,请重新上传!");
    }
  });
}

//获取上传的url
minioclient.presignedputobject(
    bucketname,//桶名称
    filename,//文件名称
    1000 * 60 * 5,//url有效期
    function (err, presignedurl) {//错误的回调方法
      if (err) return console.log(err);
      let url = presignedurl;
      uploadbyurl(url, fileobj.value);
    }
  );

总结 

到此这篇关于纯前端使用vue3上传文件到minio文件服务器的文章就介绍到这了,更多相关vue3上传文件到minio文件服务器内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com