純前端使用Vue3上傳文件到minio文件服務(wù)器(粘貼可直接用)
1、首先安裝minio的插件,因為我使用的vue3,不支持模塊化的導(dǎo)入,所以我們使用一個別人寫好的vue2的包
npm install --save minio-js
2、在需要上傳文件的頁面導(dǎo)入這個包
import { Minio } from "minio-js";3、創(chuàng)建一個minio的客戶端
minioClient = new Minio.Client({
endPoint: '192.168.1.111', // minio的ip,直接替換自己的即可
port: 9000, // 端口號,若地址為類似test.minio.com,就不必寫端口號
useSSL: false, // 是否使用ssl
accessKey: accessKey, // 登錄的accessKey
secretKey: secretKey,
sessionToken: token,
});這里說明一下,accessKey、secretKey、sessionToken都是通過接口獲取到的臨時憑證
4、通過帶預(yù)簽名的url上傳,首先我們需要獲取到這個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就是文件對象
}).then((response) => {
if (response.ok) {
// 處理成功的情況
loadding.value = false;
proxy.$modal.msgSuccess("上傳成功");
} else {
// 處理失敗的情況
proxy.$refs["my-upload"].clearFiles();
throw new Error("上傳失敗,請重新上傳!");
}
});
}
//獲取上傳的URL
minioClient.presignedPutObject(
bucketName,//桶名稱
fileName,//文件名稱
1000 * 60 * 5,//URL有效期
function (err, presignedUrl) {//錯誤的回調(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于el-select組件設(shè)置默認(rèn)值的實現(xiàn)方式
這篇文章主要介紹了關(guān)于el-select組件設(shè)置默認(rèn)值的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue 解決通過this.$refs來獲取DOM或者組件報錯問題
這篇文章主要介紹了Vue 解決通過this.$refs來獲取DOM或者組件報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue 基于abstract 路由模式 實現(xiàn)頁面內(nèi)嵌的示例代碼
這篇文章主要介紹了vue 基于abstract 路由模式 實現(xiàn)頁面內(nèi)嵌的示例代碼,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2020-12-12
vue中el-date-picker type=daterange日期清空時不回顯的解決
這篇文章主要介紹了vue中el-date-picker type=daterange日期清空時不回顯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
解決webpack-bundle-analyzer的問題大坑
這篇文章主要介紹了解決webpack-bundle-analyzer的問題大坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Vue+ElementUI實現(xiàn)動態(tài)更換任意主題色(動態(tài)換膚)的全過程
眾所周知Element-UI有換膚功能,下面這篇文章主要給大家介紹了關(guān)于Vue+ElementUI實現(xiàn)動態(tài)更換任意主題色(動態(tài)換膚)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02

