最近公司內部的一個管理安裝包的平臺準備進行重構,以前安裝包上傳的姿式是這樣的javascript
很差意思,放錯了,是這樣的:html
- 前端選擇ipa或者apk文件上傳到後端
- 後端解析出安裝包的名稱、版本號等信息以後再上傳到存儲雲
- 後端將安裝包存儲url、名稱、版本號等保存到數據庫
這個姿式有什麼問題呢?很明顯,太磨嘰了。肥皂,哦不,安裝包須要通過兩次網絡傳輸:從前端傳到後端再傳到存儲雲。安裝包通常體積都不小,兩次傳輸會浪費很長時間。前端
那,怎麼快點撿到肥皂防止被 gang ?考慮一下這個姿式java
很差意思,又放錯了,是這樣的:git
- 前端選擇ipa或者apk文件
- js解析安裝包的名稱、版本號
- 將安裝包直傳到存儲雲,上傳成功的回調中將安裝包url、名稱、版本號發送給後端
安裝包只須要通過一次傳輸,另外一次則是能夠忽略不計的請求github
由於撿肥皂時間短,出事被gang的概率也會小不少(逃shell
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標籤引入:npm
<!-- 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) console.log('file buffer ----> ', parser.file) }).catch(err => { console.log('err ----> ', err) }) } </script>
源碼地址:https://github.com/chenquincy... 後端
我沒有在要star(嚴肅臉)
深圳大疆創新長期招收前端(可內推),歡迎投遞簡歷到 mail@quincychen.cn
附招聘官網:大疆創新招聘官網