vue3?TS?vite?element?ali-oss使用教程示例
vue3 TS vite element ali-oss使用方式
安裝ali-oss包
npm i ali-oss -S
使用oss封裝函數(shù)
const OSS = require('ali-oss')
// import Oss from 'ali-oss'
/**
* [accessKeyId] {String}:通過(guò)阿里云控制臺(tái)創(chuàng)建的AccessKey。
* [accessKeySecret] {String}:通過(guò)阿里云控制臺(tái)創(chuàng)建的AccessSecret。
* [bucket] {String}:通過(guò)控制臺(tái)或PutBucket創(chuàng)建的bucket。
* [region] {String}:bucket所在的區(qū)域, 默認(rèn)oss-cn-hangzhou。
*/
//Client.js
export default function Client(data) {
//后端提供數(shù)據(jù)
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 默認(rèn)不支持commonjs語(yǔ)法,所以使用require會(huì)報(bào)錯(cuò)。解決方案
安裝vite-plugin-require-transform
npm?i?vite-plugin-require-transform?--save-dev
配置vite.config.js
plugins: [
requireTransform({
fileRegex: /.ts$|.tsx$|.vue$|.js$/
})
]<div style='color:red;font-size:20px;'>再次注意<div>
因?yàn)榘⒗颫SS文檔的后臺(tái)示例
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func main() {
// 從STS服務(wù)獲取的安全令牌(SecurityToken)。
securitytoken := "yourSecurityToken" //上面獲取的臨時(shí)授權(quán)的數(shù)據(jù)里的Credentials.SecurityToken
// 從STS服務(wù)獲取的臨時(shí)訪問(wèn)密鑰(AccessKey ID和AccessKey Secret)。
// 從STS服務(wù)獲取臨時(shí)訪問(wèn)憑證后,您可以通過(guò)臨時(shí)訪問(wèn)密鑰和安全令牌生成OSSClient。
// 創(chuàng)建OSSClient實(shí)例。
// 第一個(gè)參數(shù)就是bucket的Endpoint,可以在對(duì)象儲(chǔ)存oss控制臺(tái)的bucket的概覽得到,例如http://oss-cn-beijing.aliyuncs.com
// 第二個(gè)參數(shù)就是上面獲取的臨時(shí)授權(quán)的數(shù)據(jù)里的Credentials.AccessKeyId
// 第三個(gè)參數(shù)就是上面獲取的臨時(shí)授權(quán)的數(shù)據(jù)里的Credentials.AccessKeySecret
client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret", oss.SecurityToken(securitytoken))
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 填寫(xiě)B(tài)ucket名稱(chēng),例如examplebucket。
bucketName := "examplebucket"
// 填寫(xiě)Object的完整路徑,完整路徑中不能包含Bucket名稱(chēng),例如exampledir/exampleobject.txt。
objectName := "exampledir/exampleobject.txt"
// 填寫(xiě)本地文件的完整路徑,例如D:\\localpath\\examplefile.txt。
filepath := "D:\\localpath\\examplefile.txt"
bucket,err := client.Bucket(bucketName)
// 通過(guò)STS授權(quán)第三方上傳文件。
err = bucket.PutObjectFromFile(objectName,filepath)
fmt.Println(err)
}所以后臺(tái)返回token的名字是securitytoken,而ali-OSS的示例名叫stsToken,記住自己對(duì)應(yīng)上,安裝我的示例寫(xiě)
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函數(shù)
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)
}
// 這里是接口,會(huì)返回
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>上傳成功后會(huì)返回的數(shù)據(jù)里requestUrls
這個(gè)是個(gè)數(shù)組 里面放的是圖片鏈接
以上就是vue3 TS vite element ali-oss使用教程示例的詳細(xì)內(nèi)容,更多關(guān)于vue3 TS vite element ali-oss的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解vue-Resource(與后端數(shù)據(jù)交互)
本篇文章主要介紹了vue-Resource(與后端數(shù)據(jù)交互),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
vue第三方庫(kù)中存在擴(kuò)展運(yùn)算符報(bào)錯(cuò)問(wèn)題的解決方案
這篇文章主要介紹了vue第三方庫(kù)中存在擴(kuò)展運(yùn)算符報(bào)錯(cuò)問(wèn)題,本文給大家分享解決方案,通過(guò)結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼
本篇文章主要介紹了Vue Spa切換頁(yè)面時(shí)更改標(biāo)題的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
vue基于viewer實(shí)現(xiàn)的圖片查看器功能
這篇文章主要介紹了vue基于viewer實(shí)現(xiàn)的圖片查看器的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
Vue3實(shí)現(xiàn)地圖選點(diǎn)組件的示例代碼
這篇文章主要為大家詳細(xì)介紹了Vue3實(shí)現(xiàn)地圖選點(diǎn)組件的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn)
本文主要介紹了vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
簡(jiǎn)單聊一聊axios配置請(qǐng)求頭content-type
最近在工作中碰到一個(gè)問(wèn)題,后端提供的get請(qǐng)求的接口需要在request header設(shè)置,下面這篇文章主要給大家介紹了關(guān)于axios配置請(qǐng)求頭content-type的相關(guān)資料,需要的朋友可以參考下2022-04-04
vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動(dòng)現(xiàn)象(示例代碼)
在Vue中循環(huán)生成表格數(shù)據(jù)時(shí),可能會(huì)遇到數(shù)據(jù)聯(lián)動(dòng)的現(xiàn)象,即修改一個(gè)表格中的數(shù)據(jù)后,其他表格的數(shù)據(jù)也會(huì)跟著變化,這種現(xiàn)象通常是因?yàn)樗斜砀竦臄?shù)據(jù)引用了同一個(gè)對(duì)象或數(shù)組導(dǎo)致的,本文介紹vue中循環(huán)表格數(shù)據(jù)出現(xiàn)數(shù)據(jù)聯(lián)動(dòng)現(xiàn)象,感興趣的朋友一起看看吧2024-11-11

