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

深圳做网站公司有哪些宁波网络推广联系方式

深圳做网站公司有哪些,宁波网络推广联系方式,网站制作真人游戏娱乐平台怎么做?,商务网站建设与维护 pptvueminio实现文件上传操作 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.yidumall.com/news/50585.html

相关文章:

  • 柳州 网站开发360搜索引擎网址
  • 线上注册公司网址seo关键词排名优化价格
  • 网站建设利润品牌推广的作用
  • 泰州网站建设策划方案免费网站自助建站系统
  • 网站开发验收流程图新闻头条免费下载安装
  • 注册公司网站开发建设营业项目站长工具seo综合查询 分析
  • 企业网站建设公司哪家靠谱影视后期培训机构全国排名
  • 成品网站建设线下推广团队
  • 南昌网站建设公司资讯中国没有限制的搜索引擎
  • 网站建设合同验收标准长沙seo免费诊断
  • 做网站的主要作用怎么投稿各大媒体网站
  • 做网站开发需要学什么福州seo网站管理
  • 昆明大型网页开发企业最彻底的手机优化软件
  • 做影视网站侵权如何做电商 个人
  • 网站底部友情链接怎么做的中国大数据平台官网
  • 企业门户网站开发代码百度seo和谷歌seo有什么区别
  • 网站建设和使用情况全球十大网站排名
  • 智能网站建设武汉网站seo德升
  • 网站群的建设策略网络营销的认识与理解
  • 拆分盘的网站开发费用seo软件优化工具软件
  • 西安企业网站建设价格广州google推广
  • 怎样做信息收费网站网站建设报价单
  • 网站建设寻找可以途径谷歌浏览器在线打开
  • 关键词推广是什么意思seo实战密码
  • 织梦怎么做中英文网站网站建立
  • 网站扩展性公司的网站制作
  • 网站整站下载带数据库后台的方法简单网页制作
  • 网络推广有哪些免费渠道南宁排名seo公司
  • wordpress导入html文件seo优化网站推广全域营销获客公司
  • 网站后台有什么用矿坛器材友情交换