首页 > 其他分享 >vue 跨域代理,对象存储(阿里云、aws)预签名上传文件

vue 跨域代理,对象存储(阿里云、aws)预签名上传文件

时间:2022-11-05 12:11:34浏览次数:61  
标签:文件 vue target aws request reader buf 跨域

一、安装axoios

       ①、全局安装axois

#全局安装axios

PS E:\Code\Vues\sha_web\sha_web> npm install axios --g

 

二、配置跨域代理

        ①、配置跨域代理

 proxyTable: {
      "/sqray-keyan": { //请求地址关键字【只代理含关键字代理】
        target: "http://192.168.10.100:8082",//后端接口地址
        changeOrigin: true //启用代理跨域
      }
    },

       ②、具体截图

  

三、预签名上传文件

        ①、阿里云

1、阿里云无需如上设置,可通过控制台具体设置。

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <input type="file"
           id="file"
           @change="handlerChangeFile" />
    <router-view />
  </div>
</template>

<script>
import request from "axios";

export default {
  name: 'App',
  mounted: () => {

  },
  methods: {

    //文件切换事件
    handlerChangeFile: (ev) => {

      //已选文件
      const file = ev.target.files[0];

      const preSignalURL = "https://apricot.oss-cn-shenzhen.aliyuncs.com/apricot.jpg?Expires=1667621086&OSSAccessKeyId=LTAI5tE49rrKU9iAxwDdzMcD&Signature=qQlzyknGZrD47HGit00LOiXip4k%3D";

      let reader = new FileReader();

      //加载文件流
      reader.onload = (buf) => {
        debugger
        // xhr.send(buf.target.result)
        request.head()
        request.put(preSignalURL)
          .then(res => {
            console.log("complete");
          });
      };

      //读取文件流
      reader.readAsArrayBuffer(file);
    }
  }
}
</script>

       ②、Aws

1、文章环境对象存储存在跨域,需设置跨域,具体环境具体设置。

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <input type="file"
           id="file"
           @change="handlerChangeFile" />
    <router-view />
  </div>
</template>

<script>
import request from "axios";

export default {
  name: 'App',
  mounted: () => {

  },
  methods: {

    //文件切换事件
    handlerChangeFile: (ev) => {

      //已选文件
      const file = ev.target.files[0];

      const preSignalURL = "http://localhost:8080/apricot/apricot.jpg?AWSAccessKeyId=HYIHVY9WF5S553G80J82&Expires=1667619377&Signature=tBfNeSYyfXH5%2FimChC5hIlASaeA%3D";

      let reader = new FileReader();

      //加载文件流
      reader.onload = (buf) => {
        // xhr.send(buf.target.result)
        request.head()
        request.put(preSignalURL
          , buf.target.result
          , {
            headers: {
              "Content-Type": "application/octet-stream"
            }
          })
          .then(res => {
            console.log("complete");
          });
      };

      //读取文件流
      reader.readAsArrayBuffer(file);
    }
  }
}
</script>

 

标签:文件,vue,target,aws,request,reader,buf,跨域
From: https://www.cnblogs.com/study10000/p/16859864.html

相关文章

  • Vue的生命周期
    生命周期=>重出生到死亡的一个过程  Vue也自己的生命周期    初始化阶段:执行一次   创建阶段     beforeCreate:创建之前    ......
  • Vue闪烁的问题
    问题:当我们打开Vue页面的时候,如果弱网环境,会出现一个闪烁的效果原因:Vue还来不及处理的模板解决:使用v-cloak来解决Vue这个打开页面的闪烁的问题原理:利用v-c......
  • Vue中Key值的一些问题
    1.Vue里面的key是一个特殊的变量,在元素当中是不体现出来的2.在解析成虚拟DOM的是,如果我们没有写key值,那么这个key就类似于下标0,1,2,3....3.使用列表渲染......
  • vue3使用mitt 实现组件之间通信 (不限制组件之间关系)
    安装mittyarnadd-savemittnpminstallmitt创建miit示例mitt.tsimportmittfrom'mitt'exportdefaultmitt()组件A中引入mitt并使用emit发送数......
  • 你知道Vue响应式数据原理吗
    1.Vue2的响应式式原理主要是通过Object.defineProperty的方法里面的setter和getter方法的观察者模式来实现。也就是在组件的初始话阶段给每一个data属性都注册一个setter......
  • Vue + Vite + Ts 学习笔记
    1、环境安装#创建项目$npminitvitevue-vite-tsNeedtoinstallthefollowingpackages:[email protected]?(y)y√Selectaframework:»V......
  • day26 Vue相关内容浅拷贝和深拷贝
    概述:Vue是前端的一个js库(诞生于2015年兴起于2016年尤雨溪(阿里巴巴)),vue是一个MVVM模式的框架。MVVM概述model数据view视图viewmodel视图模型(管理数据驱动视......
  • store文件夹的处理,vuex模块化modules
      index文件代码:importVuefrom"vue";importVuexfrom"vuex";//导入根gettersimportgettersfrom"./getters";//导入三个模块importappfrom"./modul......
  • DataV兼容vue3的方法
    发现问题在使用vue开发大屏时,发现了一个很好用的可视化组件库DataV,不是阿里那个DataV哈,用vue2开发时都一切顺利,直到有一天升级项目到vue3时,发现一堆报错,后面查了下,好像是D......
  • vue项目屏幕适配【帮我们自动将px单位转换成rem单位】
    ......