背景
最近公司內(nèi)部的一個管理安裝包的平臺準(zhǔn)備進(jìn)行重構(gòu)夺英,之前安裝包上傳的姿勢是這樣的
image.png
不好意思,放錯了狐赡,是這樣的:
前端選擇ipa或者apk文件上傳到后端
后端解析出安裝包的名稱撞鹉、版本號等信息之后再上傳到存儲云
后端將安裝包存儲url、名稱颖侄、版本號等保存到數(shù)據(jù)庫
這個姿勢有什么問題呢鸟雏?很明顯,太磨嘰了览祖。肥皂孝鹊,哦不,安裝包需要經(jīng)過兩次網(wǎng)絡(luò)傳輸:從前端傳到后端再傳到存儲云展蒂。安裝包一般體積都不小又活,兩次傳輸會浪費(fèi)很長時間苔咪。
那,怎么快點(diǎn)撿到肥皂防止被 gang 柳骄?考慮一下這個姿勢
安全撿肥皂
不好意思团赏,又放錯了,是這樣的:
- 前端選擇ipa或者apk文件
- js解析安裝包的名稱耐薯、版本號
- 將安裝包直傳到存儲云舔清,上傳成功的回調(diào)中將安裝包url、名稱曲初、版本號發(fā)送給后端
安裝包只需要經(jīng)過一次傳輸体谒,另一次則是可以忽略不計的請求
因?yàn)閾旆试頃r間短,出事被gang的幾率也會小很多(逃
安利正式開始
安裝
npm install app-info-parser
# or yarn
yarn add app-info-parser
使用
NPM引入:
const AppInfoParser = require('app-info-parser')
const parser = new AppInfoParser('../packages/xxx.apk') // or xxx.ipa
parser.parse().then(result => {
console.log('app info ----> ', result)
}).catch(err => {
console.log('err ----> ', err)
})
script標(biāo)簽引入:
<!-- html -->
<input type="file" name="file" id="file" onchange="fileSelect()">
<script src="/dist/app-info-parser.min.js"></script>
<script>
function fileSelect () {
const files = document.getElementById('file').files
const parser = new AppInfoParser(files[0])
parser.parse().then(result => {
console.log('app info ----> ', result)
}).catch(err => {
console.log('err ----> ', err)
})
}
</script>
最后
源碼地址:https://github.com/chenquincy/app-info-parser
我沒有在要star(嚴(yán)肅臉)
最后的最后
深圳大疆創(chuàng)新長期招收前端(可內(nèi)推)臼婆,歡迎投遞簡歷到 mail@quincychen.cn
附招聘官網(wǎng):大疆創(chuàng)新招聘官網(wǎng)