vue3+vite前端minio上传失败?

前言

  • 公司让做前端上传,曰:"减小服务器压力",之前都是做的后端上传,前端只需要调用接口就可以,先传到服务器,服务器传给minio云或者腾讯云、阿里云。然后minio返回到服务器,服务器再把东西传给我前端。现在需要让前端直接传到minio云上,跳过服务器这一手,从而减轻服务器的压力,括弧加大前端的压力。

过程

  • 本来以为这种玩意信手拈来,因为之前做过腾讯云前端上传,所有感觉非常简单,结果啪啪打脸。minio云真是太难用了(优点支持分片上传),用的minio包,永远报错(报错原因可能是因为看不起vite),只能使用minio-js这个包,百度找遍了,也没有几个写的完整的vite版的minio上传(基本都是webpack脚手架的 ),拼拼凑凑写出来了minio上传功能,在此记录一下vite版本的minio上传。自定义方法,粘贴可用。备注已经写到位了。希望可以帮到之后用vite做minio上传的兄弟,也为以后的自己方便回顾

vite版上传minio方法

1.先安装minio-js,vite脚手架安装minio包没有用的,直接报错。网上那些改路径的都没有用,我已经试过了

css 复制代码
pnpm i minio-js

2.把下面这段代码拿过去写成upload.js,然后在需要上传的页面直接使用就可以了,传入的值一个是文件流,一个是minio的临时密钥

javascript 复制代码
import { initMinio, putObject } from 'minio-js';
     const changeFile=(event,data)=> {
      console.log(event)
        const file = event.file
        console.log(file)
        let reader = new FileReader()
        reader.readAsArrayBuffer(file)
        reader.onload = function (e) {
          let res = e.target.result
          //初始化
          initMinio({
            endPoint: '192.168.0.239', // minio的ip,直接替换自己的即可
            port: 9100, // 端口号,若地址为类似test.minio.com,就不必写端口号
            useSSL: false, // 是否使用ssl
            accessKey: data.accessKey, // 登录的accessKey
            secretKey: data.secretKey,// 登录的secretKey
            sessionToken:data.sessionToken // 登录的sessionToken
          })
          //上传
          putObject('bigdog', res, "/whatsapp/"+file.name, function (err, data) { //第一个桶名,第二个文件,第三个文件名字,第四个回调函数
            if (err) {
              console.log(err)
            }
            else {
               console.log('上传完成')
               console.log(err,data)
            }
          })
        }
      }
export {changeFile}

总结

希望minio云的minio可以搞一搞对vite友好一点。我苦逼的找了一天的文档和百度,觉得有用的话可以点个关注,这里是前端打工仔幸运是我,代码有需要修改的,可以评论区交流下!

相关推荐
前端之虎陈随易7 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
一路向北he7 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
kyriewen7 小时前
豆包和千问同时关了智能体,我用它们搭的 3 个自动化全废了——迁移方案整理
前端·javascript·ai编程
前端一小卒8 小时前
我用 TypeScript 从零手写了一个 Claude Code,然后发现它的核心只有 30 行
前端·agent
大圣编程9 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
yuhaiqiang9 小时前
随手 vibecoding 的浏览器插件已经 6000 多次下载,聊聊他的产品设计
前端·后端·面试
之歆10 小时前
Vue商品详情与放大镜组件
前端·javascript·vue.js
再吃一根胡萝卜10 小时前
如何把小米 MiMo 接入 CodeBuddy,打造私有 Agent
前端
负责的蛋挞12 小时前
异步HttpModule的实现方式
java·服务器·前端
用户8524950718412 小时前
从零构建 MCP 文件服务:50 行代码让 AI 读懂你的文件
程序员