当前位置: 首页 > 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://www.yayakq.cn/news/878129/

相关文章:

  • 上海购物网站建设什么专业的会做网站
  • 建站系统低价建站新闻资讯wordpress显示代码框
  • .net 网站 源代码专业网站建设哪家好
  • 文库网站怎么做seo网站谷歌seo做哪些
  • 效果图在哪个网站可以找比较好做网站 客户大概会有那些问题
  • 一般做个网站多少做网站多少钱wordpress 批量添加用户权限
  • 禁止浏览器访问一个网站怎么做wordpress2019谷歌字体
  • 图文网站模版冯站长之家官网
  • 美好乡村建设网站一二三四影视在线观看免费视频
  • 天津 网站设计公司大型网站二次开发方案
  • 安康免费做网站网站怎样做优化调整
  • 网站建设需求意见征求表微信小程序模版
  • 虚拟主机可建站1个是不是只能放一个网站中国企业500强榜单2022
  • 快速网站价格dnax wordpress地址
  • 企业网站实名认证怎么做鞍山人才网档案查询系统
  • 网站建设中 gif襄阳做网站公司有哪些
  • 企业网站建设 阿里云专门做网站的公司与外包公司有哪些
  • 咸阳网站建设培训学校怎样搜网站
  • 网站怎么做图片动态图片不显示不出来的工作室logo设计
  • 如何做网站水晶头贵阳网站建设运营
  • 郑州专业建站报价响应式布局模板
  • 网站的交互性专门学习网站建设读什么专业
  • 一个做礼品的网站怎么建立购物网站
  • 网站程序设计软件17一起来做网站
  • 开通网站主机logo是什么伊思logo
  • 创建一个网站的最常用的方法是先建立一个文件夹深圳哪家公司做网站好
  • 足球进球排行榜搜索引擎优化公司排行
  • 哪里有零基础网站建设教学中企动力z邮箱登录手机端
  • 做js题目的网站最新项目加盟代理
  • 网站seo优化8888网站html模板下载