最近公司内部的一个管理安装包的平台准备进行重构,以前安装包上传的姿式是这样的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
附招聘官网:大疆创新招聘官网