vue element 实现直连上传阿里OSS

10 篇文章 0 订阅
5 篇文章 0 订阅

vue element 实现直连上传阿里OSS



下载依赖+引入依赖

npm install ali-oss
import OSS from 'ali-oss';



template

<el-upload
  action=""
  multiple
  :limit="1"
  :http-request="ossFileupload"
  >
  <el-button size="small" type="primary">点击上传</el-button>
</el-upload>



methods

ossFileupload(param){
		//param携带上传的所有参数
		//取得文件
       let file = param.file
       //取得文件名
       let fileName = file.name
      console.log("ossFileupload");
      //getOssToken我后端返回给前端临时的token ,也可以自己组建参数
       getOssToken().then((res)=>{
        let ossconfig = res.data;
          const client = new OSS({
              // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
              region: ossconfig.region,
              // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
              accessKeyId: ossconfig.accessKeyId,
              accessKeySecret: ossconfig.accessKeySecret,
              // 从STS服务获取的安全令牌(SecurityToken)。
              stsToken: ossconfig.stsToken,
              // 填写Bucket名称,例如examplebucket。
              bucket: ossconfig.bucket
          });
          // console.log("filename==》",fileName,file)
          //这里可以自定义上传的路径,在阿里云就是不同路径
          let aa = client.put(fileName,file)
          console.log("aa==>",aa);
      });
    },



总结

查看官方文档才是最有效的学习方式
https://help.aliyun.com/document_detail/64047.html


注意el-upload的http-request属性,里面函数可以传递参数
https://element.eleme.cn/#/zh-CN/component/upload#dian-ji-shang-chuan



演示

在这里插入图片描述

在这里插入图片描述

全部代码

<template>
<div id="oss-container">
  <div >我的OSS实例</div>

<video width="320" height="240" :src="videourl" controls="controls">
your browser does not support the video tag
</video>


  <!-- <div > <input  :v-model="filename" type="file"/> <button   @click="mySout" >确定上传</button></div> -->
 <div >
   <el-upload
  action=""
  multiple
  :limit="1"
  :http-request="ossFileupload"
  >
  <el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</div>

</div>

</template>

<script>

import { getViedourl,getOssToken } from "@/api/learn/oss";
import OSS from 'ali-oss'
export default {
  name: "Oss",
  data() {
    return {
      videourl:'',
      filename:'',
      fileList: [],
    };
  },
  created() {
   this.inivideourl()
  //  this.ossFileupload()
  },
  methods: {
    inivideourl(){
       console.log("inivideourl")
      getViedourl().then((res)=>{
        this.videourl = res.msg
      });
    },

    ossFileupload(param){
       let file = param.file
        let fileName = file.name
      console.log("ossFileupload");
       getOssToken().then((res)=>{
        let ossconfig = res.data;
    
          const client = new OSS({
              // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
              region: ossconfig.region,
              // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
              accessKeyId: ossconfig.accessKeyId,
              accessKeySecret: ossconfig.accessKeySecret,
              // 从STS服务获取的安全令牌(SecurityToken)。
              stsToken: ossconfig.stsToken,
              // 填写Bucket名称,例如examplebucket。
              bucket: ossconfig.bucket
          });
          // console.log("filename==》",fileName,file)

          let aa = client.put(fileName,file)
          console.log("aa==>",aa);
      });
    },
  }
};
</script>


<style scoped>

#oss-container{
  background-color: aqua;
  line-height:50px;
  vertical-align:middle;
  text-align:center
}

</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值