vue+minio实现文件上传操作

【Minio怎么用】Minio上传图片并Vue回显 流程:1.文件服务器Minio的安装2.网页端操作3.后端代码实现4.前端传图片。 阅读详情

vue+minio实现文件上传操作

minio文件上传

minio文件上传有两种方法:

  1. 第一种是通过ak,sk,调用minio的sdk putObject进行文件上传;该方法支持go,java,js等各种语言,
  2. 第二种是后端生成presignedUrl,前端通过该url实现文件上传;

vue+minio实现文件上传操作

以上说的两种方法中,第一种方法会把ak,sk暴露给前端,造成一定的安全隐患;所以如果要使用第一种方法,需要向后端请求生成临时的ak,sk;

这边我们实现了第二种方法。

前端代码如下,这种方法的思路是先向后端请求生成presigned-url,然后再通过binary的方式进行文件上传;注意这里有一个小坑,就是上传文件不要使用form-data,否则会在文件加上WebKitFormBoundary前缀,minio生成的presigned-url没有对此进行解析,这种上传方式会导致如.png .mp4的文件打不开。

<template>
    <el-upload ref="uploadRef" :http-request="uploadSubmit" :auto-upload="false" v-model:file-list="fileList" :limit="1"
        :on-success="onSuccess">
        <template #trigger>
            <el-button type="primary" style="width: 100px;">select</el-button>
        </template>
        <el-button type="success" @click="uploadRef.submit()" style="margin-left: 2rem;width: 100px;">upload</el-button>
        <div class="demo-progress">
            <el-progress :percentage=percent />
        </div>
        <el-button size="small" type="primary" @click="cancelUpload">取消上传</el-button>
    </el-upload>
</template>

<script setup>
import { ref } from 'vue'
import axios from 'axios';
const uploadRef = ref();
const fileList = ref([]);
let percent = ref(0);
let Cancel = axios.CancelToken.source()

async function uploadSubmit(options) {
    console.log(options)
    const item = options['file'];

    var presignedUrl = ""
    var objSize = item.size;
    let bodyJson = {
        accessKey: 'ak',
        bucket: 'bucket',
        object: 'object',
        expireSeconds: 3600 // s
    };

    axios.put('/path/uploadUrl', bodyJson).then(res => {
        if (res.status == 200) {
            presignedUrl = res.data.data
            axios({
                method: "put",
                url: presignedUrl,
                data: item, // 重点1,直接将原始二进制流赋给data
                headers: {
                    "Content-Type": "application/octet-stream", // 重点2
                },
                timeout: 3600000, // ms
                onUploadProgress: function (e) {
                    percent.value = parseInt(e.loaded / objSize * 100);
                },
                cancelToken: Cancel.token
            }).then(res => {
                if (res.status == 200) {
                    console.log('success')
                }
            }).catch(
                err => {
                    console.log(err)
                }
            )   
        }
    })
}

const onSuccess = (response, file, fileList) => {
    console.log(response);
    console.log(file);
    console.log(fileList);
}

function cancelUpload() {
    Cancel.cancel();
    Cancel = axios.CancelToken.source(); // 重新定义cancelToken
}


</script>
<style scoped>
.demo-progress .el-progress--line {
    margin-bottom: 15px;
    width: 350px;
}
</style>
Vue中通过minio上传文件的详细步骤 在Vue中minio上传文件(stream流和链接)封装了连接minio、文件上传,文件删除等方法。直接使用npm或者cnpm下载即可。2.再通过预签名上传文件。1.先拿到预签名链接。修改如下文件中的配置。加上下面一行就可以了。 阅读详情

相关推荐

vue大文件上传的demo案例,可与fastdfs、Minio等文件系统实现分片上传

vue-simple-upload大文件上传的demo案例,可与fastdfs、Minio等文件系统实现分片上传

SpringBoot2+Minio8+Vue前后分离Minio8教程

适用人群具有java一定基础的同学课程概述学完本课程,您将掌握:完成文件系统的独立搭建和Minio8的API操作分布式文件系统Minio8企业中使用的文件管理系统采用SpringBoot2+Vue进行前后端开发和文件系统的整合实操实战项目,非理论讲解学习计划:可以一次性学完,也可以用到的时候再学,现查现用课程目标:能搭建一套独立的企业文件系统而不耦合任何系统,便成为文件服务器课程简介:MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL 

Quantum Espresso实战进阶:HSE混合泛函在能带计算中的精准应用

本文深入探讨了在Quantum Espresso中应用HSE混合泛函进行高精度能带计算的实战方法。针对传统DFT方法低估半导体带隙的问题,HSE通过混合精确交换能,显著提升计算精度。文章详细讲解了从输入文件配置、参数设置(如nqx网格、exxdiv_treatment)、到自洽与非自洽计算流程,以及结果可视化与对比的全过程,并提供了关键的调优与避坑指南,助力实现从PBE到HSE的精准进阶。

weixin_28363123的博客 225

springboot+vue实现Minio文件存储

这里bean文件只能有这一个,如果是多人团队项目开发记得在测试的时候协商好。一样,在弹窗的下拉框中添加一个2,访问路径变为自己的post的访问路径即可。工具类里有很多可使用的方法,这里只用到了。的注解导入是spring的原生注解。成功后会有访问路径以及账号密码。

来都来了 1346

LPC2124定时器实现跑马灯

文章目录一、keil 4新建工程 一、keil 4新建工程 1、Create New Project,注意,最好添加进一个新建好的文件夹里,keil不会帮你新建。 2、添加设备类型:NXP目录下的LPC2124 3、选择启动文件Startu.s 4、new 一个file,保存命名为.c文件 5、添加进project里,右击,add 选中,添加 6、设置编译输出.hex文件 ...

qq_37937830的博客 5753

雷电模拟器9.0最新过检测实战:从修改Build.prop到Xposed模块配置全流程

本文提供了一套针对雷电模拟器9.0的深度伪装实战方案,旨在绕过应用检测。内容涵盖从理解检测机制、获取Root权限、修改Build.prop等静态伪装,到利用Xposed/LSPosed框架进行运行时Hook的动态伪装全流程,帮助用户构建无痕的“真机”环境以稳定运行应用。

z4a5b6的博客 860

vue如何在线预览minio文件_Springboot+VUE+MiniO来优雅实现文件存储

前后端分离项目,如何优雅实现文件存储!在上一节中我们讲到了使用MinIO来自建对象存储服务,这次我们来讲下MinIO如何结合SpringBoot和Vue来实现文件存储。学前准备学习本文需要一些MinIO的基础知识,还不了解的小伙伴可以参考下:19K+Star强大的MinIO让你10分钟自建对象存储服务结合SpringBoot使用接下来我们将结合SpringBoot来实现一个完整的图片上传与删除操作...

weixin_42300329的博客 6995

在ros里给机械臂加上夹爪和底盘后,控制真实机械臂

使用ur3_bringup 可以连接真实机械臂 使用官方的ur3_moveit_planning_execution.launch 可以对机械臂 moveit规划。 但是只有机械臂,没有夹爪。 官方如图: 我把原来的ur3_moveit_config 复制出来,修改 然后把ur3.xacro 等模型文件复制出来修改,修改完之后,有了夹爪,有了底盘。 规划组什么的使用moveit setup assistant 配置过了。 在rviz中可以笛卡尔空间规划了。 ...

超级菜 2715

minio获取上传文件_前后端分离项目,如何优雅实现文件存储!

在上一节中我们讲到了使用MinIO来自建对象存储服务,这次我们来讲下MinIO如何结合SpringBoot和Vue来实现文件存储。SpringBoot实战电商项目mall(25k+star)地址:https://github.com/macrozheng/mall学前准备学习本文需要一些MinIO的基础知识,还不了解的小伙伴可以参考下:Github标星19K+Star,10分钟自建对象存储服务!...

weixin_32801895的博客 4020

Chapter 4 Ripple-Based Control Technique Part I

本文介绍了DC-DC转换器的纹波控制技术,重点分析了迟滞控制、恒定开通时间控制、恒定关断时间控制等方案的工作原理及优缺点。纹波控制无需补偿网络,具有快速瞬态响应和结构简单的优势,特别适合电池供电应用。其中,恒定开通时间控制在轻载时能自动延长关断时间,实现伪定频工作;而恒定关断时间控制轻载效率较低。文章还讨论了纹波注入技术解决Boost转换器右半平面零点问题,并比较了不同控制方案在负载瞬态下的性能表现。最后指出基于纹波的控制技术在提高调节精度和降低EMI方面的改进方向。

2304_76736886的博客 1300

告别环境配置噩梦:用Docker Desktop + WSL2在Windows上5分钟搞定vLLM运行环境

本文详细介绍了如何在Windows系统上使用Docker Desktop和WSL2快速搭建vLLM开发环境,5分钟内完成配置。通过容器化技术解决传统环境配置中的依赖冲突、环境污染等问题,提供一键复用的高效方案,特别适合AI开发者快速部署和测试vLLM框架。

weixin_28728495的博客 502

springboot整合Minio + vue 实现文件分片上传(完整代码已更新)

网上关于minio分片上传的资料不太详细,缺斤少两,所以我基于他们的代码做了一些修改,demo能够正常运行起来,但是偶尔也会发生一些小bug,不过这些都无伤大雅,最终目的是理解代码背后的逻辑和流程。

weixin_45357745的博客 8443

Arduino+esp8266+blinker物联网开发

文章目录blinker点灯一.简介二.开发环境的搭建1.arduino的安装2.添加esp8266开发板3. blinker库的导入4.驱动的安装4.手机端安装app三.开发第一个点灯程序1.添加设备2.载入示例3.代码部分4.代码讲解5.程序烧写四.总结 blinker点灯 一.简介 为了加深为物联网知识的认识,今天就教大家如何用手机app来控制我们的开发板。我们的开发环境是以arduino I...

weixin_45631738的博客 3万+

前后端分离项目,如何优雅实现文件存储!

在上一节中我们讲到了使用MinIO来自建对象存储服务,这次我们来讲下MinIO如何结合SpringBoot和Vue来实现文件存储。学前准备 学习本文需要一些MinIO的基础知识,还不了解...

macrozheng的专栏 3497

计算机组成原理(第三版)唐朔飞-第九章控制单元的功能-课后习题

计算机组成原理(第三版)唐朔飞-第九章控制单元的功能-课后习题

weixin_45735391的博客 4万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringBoot整合minio服务(超详细)

创建一个名为public的存储桶(名字可自定义),上传文件。在application.yml文件中编写相关配置。http://ip:9000/存储桶名/文件名。开发中上传接口用得较多,其他接口可自行测试。可以将存储桶的访问权限设置为public.# npm下载element-ui。// 引入ElementUI。

yueyue763184的博客 2万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

el-upload + minio实现预签名浏览器文件上传

前提:minio的版本要选RELEASE.2025-04-22T22-12-26Z版本之前的,之后的版本页面隐藏了很多功能,bucket要开好权限,默认是Private,要开成Public,或者自定义Custom,还可以定义规则设置目录的访问权限。前端使用el-upload组件进行图片上传,代码如下 (当前使用的是element-ui的vue2版本,跟vue3版本有所区别,vue3版本的组件可以设置请求方式为PUT,vue2只能是自定义请求方法)

qq_64389417的博客 658

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

vue上传图片到指定文件夹

vue上传图片到指定文件夹

小眼哥的博客 1770

后端如何收取多个文件_前后端分离项目,如何优雅实现文件存储!

在上一节中我们讲到了使用MinIO来自建对象存储服务,这次我们来讲下MinIO如何结合SpringBoot和Vue来实现文件存储。学前准备学习本文需要一些MinIO的基础知识,还不了解的小伙伴可以参考下:Github标星19K+Star,10分钟自建对象存储服务!结合SpringBoot使用接下来我们将结合SpringBoot来实现一个完整的图片上传与删除操作。上传流程示意图:在pom.xml中添...

weixin_36176188的博客 319

Spring Boot + minio 实现高性能存储服务,So Easy~!

大家好,我是宝哥!什么是minio引用官网:MinIO是根据GNU Affero通用公共许可证v3.0发布的高性能对象存储。它与Amazon S3云存储服务兼容。使用MinIO构建用于机器学习,分析和应用程序数据工作负载的高性能基础架构。官网地址:https://min.io/文档地址:https://docs.min.io/一. 使用docker 搭建minio 服务。GNU / Linux和m...

程序员闪充宝 179

文件上传,下载,查询,删除以及预览

一般vue项目中的文件上传,下载,查询,删除以及预览等基本功能

Cfcsgo的博客 907

从前端到后端全面解析文件上传

2.后端准备(SpringBoot+minio+mysql) 2.1解决跨域 2.2配置minio与mysql pom依赖 配置文件配置 配置minio客户端

RX1125的博客 767

minio服务器在win10的上传与下载,以及修改头像Minio速看免费本地文件服务器

Minio服务器,实现文件CRUD,上传下载,修改头像

weixin_45454861的博客 1489

前后端分离项目,优雅实现文件存储

学前准备 学习本文需要一些MinIO的基础知识,还不了解的小伙伴可以参考下:Github标星19K+Star,10分钟自建对象存储服务! 结合SpringBoot使用 接下来我们将结合SpringBoot来实现一个完整的图片上传与删除操作。 上传流程示意图: 在pom.xml中添加MinIO的相关依赖: <!--MinIO JAVA SDK--> <dependency> <groupId>io.minio</groupId>

豪华的博客 687

Vue + Element(文件上传控件)+ SpringBoot 文件上传功能

文件上传效果展示: 文件上传效果预览 文件上传删除 Vue 前端核心代码 <el-form-item label="文件上传" > <el-upload drag multiple name="multipartfiles" ref="upload" :limit=1 :action="imageAction" :on-preview="handlePreview" :on-remove="handleRemo..

zhouzhiwengang的专栏 982

文件分片上传

通过SpringBoot MinIo Vue实现全后端文件分片上传的功能。

weixin_73683794的博客 840
上一篇: mysql8.0.30一些新增特性和xtrabackup的对应
下一篇: redis五种数据结构特点
code_feien
博客等级 码龄7年 71粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值