前端解析ipa、apk安裝包信息 —— app-info-parser

背景

最近公司內部的一個管理安裝包的平臺準備進行重構,以前安裝包上傳的姿式是這樣的javascript

撿肥皂

很差意思,放錯了,是這樣的:html

  1. 前端選擇ipa或者apk文件上傳到後端
  2. 後端解析出安裝包的名稱、版本號等信息以後再上傳到存儲雲
  3. 後端將安裝包存儲url、名稱、版本號等保存到數據庫

這個姿式有什麼問題呢?很明顯,太磨嘰了。肥皂,哦不,安裝包須要通過兩次網絡傳輸:從前端傳到後端再傳到存儲雲。安裝包通常體積都不小,兩次傳輸會浪費很長時間。前端

那,怎麼快點撿到肥皂防止被 gang ?考慮一下這個姿式java

安全撿肥皂

很差意思,又放錯了,是這樣的:git

  1. 前端選擇ipa或者apk文件
  2. js解析安裝包的名稱、版本號
  3. 將安裝包直傳到存儲雲,上傳成功的回調中將安裝包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

附招聘官網:大疆創新招聘官網

相關文章
相關標籤/搜索