首页 > 其他分享 >vue3 TS vite element ali-oss使用方式

vue3 TS vite element ali-oss使用方式

时间:2023-07-29 11:24:14浏览次数:33  
标签:ali oss bucket TS import data vite

vue3 TS vite element ali-oss使用方式

  1. 安装ali-oss包

    npm i ali-oss -S
    
  2. 使用oss封装函数

    const OSS = require('ali-oss')
    // import Oss from 'ali-oss'
    
    /**
     *  [accessKeyId] {String}:通过阿里云控制台创建的AccessKey。
     *  [accessKeySecret] {String}:通过阿里云控制台创建的AccessSecret。
     *  [bucket] {String}:通过控制台或PutBucket创建的bucket。
     *  [region] {String}:bucket所在的区域, 默认oss-cn-hangzhou。
     */
    
    //Client.js
    
    export default function Client(data) {
      //后端提供数据
      return new OSS({
        region: 'oss-cn-beijing', //oss-cn-beijing-internal.aliyuncs.com
        accessKeyId: data.accessKeyId,
        accessKeySecret: data.accessKeySecret,
        stsToken: data.securityToken,
        bucket: data.bucket
      })
    }
    
    这里注意

    vite 默认不支持commonjs语法,所以使用require会报错。解决方案

    1. 安装vite-plugin-require-transform

      npm i vite-plugin-require-transform --save-dev
      
    2. 配置vite.config.js

       plugins: [
       			requireTransform({
              fileRegex: /.ts$|.tsx$|.vue$|.js$/
            })
       ]
      
    再次注意

    因为阿里OSS文档的后台示例

    package main
    
    import (
        "fmt"
        "github.com/aliyun/aliyun-oss-go-sdk/oss"
        "os"
    )
    
    func main() {    
        // 从STS服务获取的安全令牌(SecurityToken)。
        securitytoken := "yourSecurityToken" //上面获取的临时授权的数据里的Credentials.SecurityToken
        // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
        // 从STS服务获取临时访问凭证后,您可以通过临时访问密钥和安全令牌生成OSSClient。
        // 创建OSSClient实例。
        // 第一个参数就是bucket的Endpoint,可以在对象储存oss控制台的bucket的概览得到,例如http://oss-cn-beijing.aliyuncs.com
        // 第二个参数就是上面获取的临时授权的数据里的Credentials.AccessKeyId
        // 第三个参数就是上面获取的临时授权的数据里的Credentials.AccessKeySecret
        client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret", oss.SecurityToken(securitytoken))
        if err != nil {
            fmt.Println("Error:", err)
        	os.Exit(-1)    
        }
        // 填写Bucket名称,例如examplebucket。
        bucketName := "examplebucket"
        // 填写Object的完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        objectName := "exampledir/exampleobject.txt"
        // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
        filepath := "D:\\localpath\\examplefile.txt"
        bucket,err := client.Bucket(bucketName)
        // 通过STS授权第三方上传文件。
        err = bucket.PutObjectFromFile(objectName,filepath)
        fmt.Println(err)
    }
    
    

    所以后台返回token的名字是securitytoken,而ali-OSS的示例名叫stsToken,记住自己对应上,安装我的示例写

  3. element-plus代码

    <template>
    <el-upload
        accept=""
        v-model:file-list="fileList"
        :http-request="handleUpload"
        :before-upload="beforeUpload"
        action=""
        list-type="picture-card"
        :auto-upload="true"
      >
        <slot name="default" class="el-icon-plus" />
      </el-upload>
      </<template>
    <script lang="ts" setup>
    //Client.js 这里引入刚才封装好的Client函数
    import Client from './ali-oss.js'
    import { ref } from 'vue'
    import type { UploadUserFile } from 'element-plus'
    const fileList = ref<UploadUserFile[]>([])
    const handleUpload = async (option: Object) => {
      console.log(option)
    }
    // 这里是接口,会返回 
    import { OssAuthorize } from '@/utils/publicData'
    function beforeUpload(file: any) {
      console.log(file)
      OssAuthorize().then((response) => {
        // response.data.accessKeyId = response.data.accessKeyId.replace('STS.', '')
        const client = Client(response.data)
        client.multipartUpload(file.name, file).then((res: any) => {
          console.log(res)
        })
      })
    }
    </script>
    

    上传成功后会返回的数据里requestUrls

    这个是个数组 里面放的是图片链接

标签:ali,oss,bucket,TS,import,data,vite
From: https://www.cnblogs.com/bozhiyao/p/17589498.html

相关文章

  • Adobe After Effects 2023 v23.4 (macOS, Windows) - 后期特效
    AdobeAfterEffects2023v23.4(macOS,Windows)-后期特效Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD请访......
  • Android平台GB28181设备接入侧如何同时对外输出RTSP流?
    技术背景GB28181的应用场景非常广泛,如公共安全、交通管理、企业安全、教育、医疗等众多领域,细分场景可用于如执法记录仪、智能安全帽、智能监控、智慧零售、智慧教育、远程办公、明厨亮灶、智慧交通、智慧工地、雪亮工程、平安乡村、生产运输、车载终端等:公共安全:通过GB28181协议,用......
  • v7.1 LTS Resource Control 试用
    作者:weixiaobing 1、集群信息[tidb@vm116~]$tiupclusterdisplaytidb-prdtiupischeckingupdatesforcomponentcluster...Startingcomponent`cluster`:/home/tidb/.tiup/components/cluster/v1.12.2/tiup-clusterdisplaytidb-prdClustertype:tidbClus......
  • CLAHE:Contrast Limited Adaptive histgram equalization
    论文:ContrastlimitedadaptivehistogramequalizationZuiderveld,Karel."Contrastlimitedadaptivehistogramequalization."GraphicsgemsIV.AcademicPressProfessional,Inc.,1994.目录 一、背景1、对比度和直方图均衡HE2、HE的问题3、AHE  4、底噪问题二、CLAHE1......
  • ACM-knowledge <bitset>
    关于bitset,详见参考;#include<iostream>#include<bitset>usingnamespacestd;usingLL=longlong;intmain(){bitset<10>b1;cin>>b1;//1101;可直接读入01串;cout<<b1[0]<<endl;......
  • Microsoft Speech SDK 5.1 微软的文字转语音TTS
    下载安装 SpeechSDK5.11. WindowsSpeechSDK5.1版本支持xp系统和server2003系统,需要下载安装。XP系统默认只带了个MicrosoftSam英文男声语音库,想要中文引擎就需要安装WindowsSpeechSDK5.1。下载地址:http://www.microsoft.com/download/en/details.aspx?id=101212.Wi......
  • TSINGSEE青犀视频汇聚融合平台EasyCVR的中性化版本如何配置?
    TSINGSEE青犀视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等,平台融合性强、开放度高、部署轻快,在智慧工地、智慧园区、智慧工厂、智慧码头、智慧水利等场景中有着广泛的应......
  • TSINGSEE青犀视频监控管理平台EasyNVR如何配置鉴权?
    视频监控汇聚平台EasyNVR是基于RTSP/Onvif协议的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提供了丰富的API接口供用户调用。有需要的用户可参照官方接口文......
  • TSINGSEE青犀视频监控管理平台EasyNVR如何配置鉴权?
    视频监控汇聚平台EasyNVR是基于RTSP/Onvif协议的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求,我们也提供了丰富的API接口供用户调用。有需要的用户可参照官方接口文......
  • 最全springcloudAlibaba视频笔记-第三章Nacos Config服务配置中心
    NacosConfig服务配置中心课程视频:https://www.bilibili.com/video/BV1VW4y1o7n5本课程使用的是目前最新版本2022.0.0.0-RC2。基于SpringBoot3.0与JDK20的开发环境。集群中每一台主机的配置文件都是相同的,对配置文件的更新维护就成为了一个棘手的问题。此时就出现了配置中心......