美文网首页
vue 上传阿里OSS

vue 上传阿里OSS

作者: Pluto_7a23 | 来源:发表于2022-09-07 15:04 被阅读0次

    近期相中上传图片利用后端传递到阿里云服务器会慢一点,让后想着前端直接上传阿里云来提高带宽。记录一下

    首先下载

    npm install ali-oss //下载插件ali-oss
    

    我利用的element-ui

    <el-upload
          class="avatar-uploader"
          action="##"
          :show-file-list="false"
          :on-success="handleAvatarSuccess"
          :http-request="uploadImageOss"
          :before-upload="beforeAvatarUpload">
          <img v-if="imageUrl" :src="imageUrl" class="avatar">
          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
     </el-upload>
    <script>
    import OSS from 'ali-oss'
    import axios from 'axios'
    import moment from 'moment'
    uploadImageOss(file){
      this.getFile(file)
    }
    async getFile({file}){
        //首先调用后端接口获取oss配置
        let stsData = await axios.post('接口地址').then(res=>res.data.data) 
        var parseMast = {
            bucket:stsData.Credentials.bucket , // 这个可以找开通OSS的管理员拿,或者接口返回获取
            region: stsData.Credentials.endpoint, // 同上
            accessKeyId: stsData.Credentials.AccessKeyId, // 从接口返回的数据获取
            accessKeySecret: stsData.Credentials.AccessKeySecret, // 同上
            stsToken: stsData.Credentials.SecurityToken,//从接口返回的数据获取
            secure: true
        }
      let client = new OSS(parseMast); // 调用OSS依赖
      let name = file.name
      let date = new Date
      let dateFormat = moment(date).format('YYYYMMDD')
      client.multipartUpload('CJ/'+dateFormat+'/'+name, file, )
    .then(res=>{
          console.log(res.res.requestUrls[0]);//上传成功
        //so 这里有个小问题  如果上传的是利用微信截图的png图片  返回的链接会自动带一个
          ?uploadId=‘’  返回的链接不能打开只能吧 ? 之后的全部删除
          我的处理方式是 利用后端接口返回的bucket + endpoint  进行了图片的拼接
          'http://' +stsData.Credentials.bucket + '.' +  stsData.Credentials.endpoint + '.aliyuncs.com/' + 'CJ/'+dateFormat+'/'+name
      })
    .catch(err=>{
          console.log(err);//上传失败之后
      })
    }
    </script>
    

    有没有哪位大佬跟我说一下为什么会返回一个uploadId 怎么解决 谢谢!!

    相关文章

      网友评论

          本文标题:vue 上传阿里OSS

          本文链接:https://www.haomeiwen.com/subject/faronrtx.html