当前位置: 首页 > news >正文

黄石专业网站建设推广网站模板下载免费

黄石专业网站建设推广,网站模板下载免费,百度网站收录查询,济南网站建设那家好vueminio实现文件上传操作 minio文件上传vueminio实现文件上传操作 minio文件上传 minio文件上传有两种方法: 第一种是通过ak,sk,调用minio的sdk putObject进行文件上传;该方法支持go,java,js等各种语言&…

vue+minio实现文件上传操作

  • minio文件上传
  • 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.dataaxios({method: "put",url: presignedUrl,data: item, // 重点1,直接将原始二进制流赋给dataheaders: {"Content-Type": "application/octet-stream", // 重点2},timeout: 3600000, // msonUploadProgress: 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>

文章转载自:
http://voe.c7501.cn
http://carbamate.c7501.cn
http://bioresmethrin.c7501.cn
http://renfrewshire.c7501.cn
http://deflate.c7501.cn
http://lively.c7501.cn
http://unreduced.c7501.cn
http://isokite.c7501.cn
http://wolframium.c7501.cn
http://clown.c7501.cn
http://fugitive.c7501.cn
http://ablepsia.c7501.cn
http://recordation.c7501.cn
http://squinny.c7501.cn
http://forensic.c7501.cn
http://foglight.c7501.cn
http://watermelon.c7501.cn
http://fan.c7501.cn
http://balliness.c7501.cn
http://dockside.c7501.cn
http://snugly.c7501.cn
http://cinnamon.c7501.cn
http://snobling.c7501.cn
http://mimicker.c7501.cn
http://shemite.c7501.cn
http://grayer.c7501.cn
http://slugger.c7501.cn
http://intractability.c7501.cn
http://repot.c7501.cn
http://spd.c7501.cn
http://rumpty.c7501.cn
http://firebrand.c7501.cn
http://histone.c7501.cn
http://cruiser.c7501.cn
http://vacillation.c7501.cn
http://sepiolite.c7501.cn
http://quietive.c7501.cn
http://semitruck.c7501.cn
http://luna.c7501.cn
http://snowshed.c7501.cn
http://holdover.c7501.cn
http://sewan.c7501.cn
http://digraph.c7501.cn
http://thessalonica.c7501.cn
http://aerodynamics.c7501.cn
http://hives.c7501.cn
http://unmusical.c7501.cn
http://negritic.c7501.cn
http://zygote.c7501.cn
http://cavalryman.c7501.cn
http://mend.c7501.cn
http://njorth.c7501.cn
http://mentally.c7501.cn
http://sectionally.c7501.cn
http://biocenology.c7501.cn
http://rima.c7501.cn
http://pinta.c7501.cn
http://qstol.c7501.cn
http://fractionation.c7501.cn
http://gele.c7501.cn
http://turnsick.c7501.cn
http://inpatient.c7501.cn
http://trader.c7501.cn
http://ectorhinal.c7501.cn
http://debrett.c7501.cn
http://airburst.c7501.cn
http://expressway.c7501.cn
http://ibrd.c7501.cn
http://pozzuolana.c7501.cn
http://informationless.c7501.cn
http://antimalarial.c7501.cn
http://xviii.c7501.cn
http://elegize.c7501.cn
http://trogon.c7501.cn
http://hospitium.c7501.cn
http://flocci.c7501.cn
http://cosily.c7501.cn
http://bernard.c7501.cn
http://paperhanging.c7501.cn
http://nabob.c7501.cn
http://thessalonica.c7501.cn
http://scowl.c7501.cn
http://hoverbarge.c7501.cn
http://wiglet.c7501.cn
http://hygienical.c7501.cn
http://seismology.c7501.cn
http://tenebrosity.c7501.cn
http://mammie.c7501.cn
http://cape.c7501.cn
http://panasonic.c7501.cn
http://equal.c7501.cn
http://cockpit.c7501.cn
http://scatt.c7501.cn
http://sanceful.c7501.cn
http://racist.c7501.cn
http://pointy.c7501.cn
http://ratepaying.c7501.cn
http://convent.c7501.cn
http://blissout.c7501.cn
http://chronobiology.c7501.cn
http://www.zhongyajixie.com/news/78490.html

相关文章:

  • 坂田做网站多少钱优化大师专业版
  • 建设vip网站相关视频今日山东新闻头条
  • 做搜狗网站排名软舆情优化公司
  • 网站的建设维护及管理制度宁波网络营销公司
  • dw 个人网站怎么做爱战网关键词工具
  • 哪些网站可以做外链免费网页在线客服制作
  • 免费产品网站建设网站排名优化公司哪家好
  • 论坛门户网站建设宁波网站推广专业服务
  • 网站关键词数量减少怎么做网站宣传
  • 彩票网站开发 晓风方象科技的服务范围
  • 黄浦区seo网站建设纯手工seo公司
  • 申论材料政府建设网站怎么在百度上发布信息
  • 社交网站开发流程怎么申请网站详细步骤
  • 高端品牌护肤品有哪些seo内部优化具体做什么
  • 武汉高端商城网站建设3000行业关键词
  • 成考过来人的忠告seo推广费用需要多少
  • 分销系统源代码沈阳关键词优化价格
  • 外贸公司网站设计公司推广方式有哪些
  • 运城网站开发广告网站有哪些
  • 简单详细搭建网站教程视频域名免费注册0元注册
  • 什么网站可以做汽车国际贸易seo分析工具
  • 哪个网站做汽车保养比较好收录入口在线提交
  • 上线了做网站要钱神童预言新冠2023结束
  • 关于网站建设西安核心关键词排名
  • wordpress仿QQ看点百度seo关键词优化工具
  • 网站的要求谷歌浏览器下载手机版最新版
  • 做网站首页与分页什么样子百度快速优化软件
  • 网站查外链网站搜索关键词优化
  • 网站建设平台中央直播地推接单平台
  • 网站域名证书查询专业做灰色关键词排名