vue3 +vite aws上傳(二)

上篇寫了oss上傳甚牲,這篇寫aws上傳的方式焕毫,因?yàn)橐郧皼]用過aws上傳鞠值,公司業(yè)務(wù)涉及到了海外客戶夜赵,海外就用aws上傳填大,但這里坑就特別多牛柒,先講講簡(jiǎn)單上傳吧膏执,aws的參數(shù)悄谐、方法網(wǎng)上一大堆侧但,官方文檔只是簡(jiǎn)單的案例矢空,真正還是要靠自己探索出來,今天記錄一下

1禀横、說一下aws的s3.upload上傳方式屁药,這里要引入aws-sdk,引入后部署到dorker上就會(huì)報(bào)錯(cuò)柏锄,然后在index.html引入https://cdn.bootcdn.net/ajax/libs/aws-sdk/2.1167.0/aws-sdk.min.js并沒有報(bào)錯(cuò)酿箭,用webpack的dome測(cè)試發(fā)現(xiàn)正常,懷疑是vite打包導(dǎo)致的沖突問題

下面是aws的s3.upload上傳方式

const credentials = {accessKeyId:awsData.value.accessid, secretAccessKey:awsData.value.secret};

(window as any).AWS.config.update(credentials);

(window as any).AWS.config.region =document.domain.includes('eu') ?awsData.value.cdnDomain:awsData.value.host;? //設(shè)置區(qū)域

const s3 =new (window as any).AWS.S3();

const params:any = {

? Bucket:awsData.value.bucket,

? Key:awsData.value.dir +'/' +randomString(8) +'_' +Date.now() +'.' +file.value.name.split('.')[file.value.name.split('.').length -1],

? Body:file.value,

? 'Access-Control-Allow-Credentials':'*'

};

percentage.value =0

awsUploadEvent =await s3.upload(params, {}).on('httpUploadProgress', (e:any) => {

let precent = (parseInt(e.loaded, 10) /parseInt(e.total, 10)) *100;

? precent =parseInt(precent.toFixed(2));

? percentage.value = precent;

});

2趾娃、aws.upload就僅有這么點(diǎn)代碼缭嫡, 但也弄了很久,因?yàn)橹坝玫牟皇莡pload抬闷,參數(shù)也沒有那么少妇蛀,最后呢耕突,后端開始不再返回secret,就直接put返回的url评架,這種上傳方式眷茁,不僅不用引入aws-sdk,也不用在index.html中引入js纵诞,簡(jiǎn)化了步驟上祈,下面來看看

let domain ='';

//把歐服url域名替換為cdn,后端返回的url中包含了bucket和host浙芙,要把域名全部替換為cdn加速

if (cdnDomain) {?

domain = url.split('//')[1];

? ? domain = domain.split('/')[0];

? ? url = url.replace(domain, cdnDomain)

}

//請(qǐng)求頭配置

const awsConfig = {

headers: {'Content-Type':'multipart/form-data'} //圖片可以用這個(gè)登刺,但如果是設(shè)備的話就要換成二進(jìn)制的'Content-Type': 'application/octet-stream'

};

//正式上傳

let result =new Promise(async (resolve, reject) => {

//aws規(guī)定要用put,不能用post

? ? await axios.put(url, file, awsConfig)

.then(res => {

if (res.status ==200) {

? ? ? ? ? ? ? ? resolve(url);

? ? ? ? ? ? }

}).catch(err => {

reject(err)

}

)

})

return result;

不管是oss還是aws茁裙,我都推崇第二種方式塘砸,在后端簽名返回,前端用post或者put上傳晤锥,就不需要前端引入任何東西。

還有一個(gè)手機(jī)端用uni-app上傳的廊宪,也做了封裝矾瘾,因?yàn)槭莡ni.chooseImage選擇的圖片,用的不能是blob鏈接箭启,這個(gè)要記住壕翩,用的是他的file,就是res.tempFiles里面的東西傅寡,在我的電商項(xiàng)目pages/commonAction/uploadImage里面放妈,這個(gè)本來想放到npmjs上的,后來還是沒有放上去

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荐操,一起剝皮案震驚了整個(gè)濱河市芜抒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌托启,老刑警劉巖宅倒,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屯耸,居然都是意外死亡拐迁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門疗绣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來线召,“玉大人,你說我怎么就攤上這事多矮』貉停” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)割卖。 經(jīng)常有香客問我前酿,道長(zhǎng),這世上最難降的妖魔是什么鹏溯? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任罢维,我火速辦了婚禮,結(jié)果婚禮上丙挽,老公的妹妹穿的比我還像新娘肺孵。我一直安慰自己,他們只是感情好颜阐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布平窘。 她就那樣靜靜地躺著,像睡著了一般凳怨。 火紅的嫁衣襯著肌膚如雪瑰艘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天肤舞,我揣著相機(jī)與錄音紫新,去河邊找鬼。 笑死李剖,一個(gè)胖子當(dāng)著我的面吹牛芒率,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播篙顺,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼偶芍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了德玫?” 一聲冷哼從身側(cè)響起匪蟀,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎化焕,沒想到半個(gè)月后萄窜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撒桨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年查刻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凤类。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡穗泵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谜疤,到底是詐尸還是另有隱情佃延,我是刑警寧澤现诀,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站履肃,受9級(jí)特大地震影響仔沿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尺棋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一封锉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膘螟,春花似錦成福、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至内斯,卻和暖如春蕴潦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俘闯。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工品擎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人备徐。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像甚颂,于是被迫代替她去往敵國(guó)和親蜜猾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容