純前端使用Vue3上傳文件到minio文件服務(wù)器(粘貼可直接用)
1、首先安裝minio的插件,因?yàn)槲沂褂玫膙ue3,不支持模塊化的導(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都是通過接口獲取到的臨時(shí)憑證
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)文章
vue實(shí)現(xiàn)關(guān)鍵字高亮效果的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用vue實(shí)現(xiàn)關(guān)鍵字高亮效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
vue項(xiàng)目,代碼提交至碼云,iconfont的用法說明
這篇文章主要介紹了vue項(xiàng)目,代碼提交至碼云,iconfont的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
解決vue使用vant輪播組件swipe + flex時(shí)文字抖動問題
這篇文章主要介紹了解決vue使用vant輪播組件swipe + flex時(shí)文字抖動問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-01-01

