純前端使用Vue3上傳文件到minio文件服務(wù)器(粘貼可直接用)
1、首先安裝minio的插件,因?yàn)槲沂褂玫膙ue3,不支持模塊化的導(dǎo)入,所以我們使用一個(gè)別人寫好的vue2的包
npm install --save minio-js
2、在需要上傳文件的頁(yè)面導(dǎo)入這個(gè)包
import { Minio } from "minio-js";
3、創(chuàng)建一個(gè)minio的客戶端
minioClient = new Minio.Client({ endPoint: '192.168.1.111', // minio的ip,直接替換自己的即可 port: 9000, // 端口號(hào),若地址為類似test.minio.com,就不必寫端口號(hào) useSSL: false, // 是否使用ssl accessKey: accessKey, // 登錄的accessKey secretKey: secretKey, sessionToken: token, });
這里說(shuō)明一下,accessKey、secretKey、sessionToken都是通過接口獲取到的臨時(shí)憑證
4、通過帶預(yù)簽名的url上傳,首先我們需要獲取到這個(gè)url,minioAPI提供了, minioClient.presignedPutObject可以獲取帶簽名的URL
function uploadByUrl(url, data) { loadding.value = true; return fetch(url, { mode: "cors", // 解決跨域 headers: { Accept: "application/json,text/plain,/", }, method: "PUT", body: data,//data就是文件對(duì)象 }).then((response) => { if (response.ok) { // 處理成功的情況 loadding.value = false; proxy.$modal.msgSuccess("上傳成功"); } else { // 處理失敗的情況 proxy.$refs["my-upload"].clearFiles(); throw new Error("上傳失敗,請(qǐng)重新上傳!"); } }); } //獲取上傳的URL minioClient.presignedPutObject( bucketName,//桶名稱 fileName,//文件名稱 1000 * 60 * 5,//URL有效期 function (err, presignedUrl) {//錯(cuò)誤的回調(diào)方法 if (err) return console.log(err); let url = presignedUrl; uploadByUrl(url, fileObj.value); } );
總結(jié)
到此這篇關(guān)于純前端使用Vue3上傳文件到minio文件服務(wù)器的文章就介紹到這了,更多相關(guān)Vue3上傳文件到minio文件服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue打印功能實(shí)現(xiàn)的兩種方法總結(jié)
在項(xiàng)目中,有時(shí)需要打印頁(yè)面的表格,所以下面這篇文章主要給大家介紹了關(guān)于vue打印功能實(shí)現(xiàn)的兩種方法,以及批量打印的完整代碼,需要的朋友可以參考下2021-06-06關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Vue 解決通過this.$refs來(lái)獲取DOM或者組件報(bào)錯(cuò)問題
這篇文章主要介紹了Vue 解決通過this.$refs來(lái)獲取DOM或者組件報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-07-07vue 基于abstract 路由模式 實(shí)現(xiàn)頁(yè)面內(nèi)嵌的示例代碼
這篇文章主要介紹了vue 基于abstract 路由模式 實(shí)現(xiàn)頁(yè)面內(nèi)嵌的示例代碼,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決
這篇文章主要介紹了vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Vue寫一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能
這篇文章主要介紹了基于Vue寫一個(gè)簡(jiǎn)單的倒計(jì)時(shí)按鈕功能,在項(xiàng)目開發(fā)的過程,經(jīng)常會(huì)遇到發(fā)送驗(yàn)證碼,點(diǎn)擊之后有60秒倒計(jì)時(shí)的按鈕,今天小編就給大家分享實(shí)例代碼,需要的朋友參考下吧2018-04-04解決webpack-bundle-analyzer的問題大坑
這篇文章主要介紹了解決webpack-bundle-analyzer的問題大坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Vue+ElementUI實(shí)現(xiàn)動(dòng)態(tài)更換任意主題色(動(dòng)態(tài)換膚)的全過程
眾所周知Element-UI有換膚功能,下面這篇文章主要給大家介紹了關(guān)于Vue+ElementUI實(shí)現(xiàn)動(dòng)態(tài)更換任意主題色(動(dòng)態(tài)換膚)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)首頁(yè)banner自動(dòng)輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03