最近公司内部的一个管理安装包的平台准备进行重构,之前安装包上传的姿势是这样的
不好意思,放错了,是这样的:
前端选择 ipa 或者 apk 文件上传到后端
后端解析出安装包的名称、版本号等信息之后再上传到存储云
后端将安装包存储 url、名称、版本号等保存到数据库
这个姿势有什么问题呢?很明显,太磨叽了。肥皂,哦不,安装包需要经过两次网络传输:从前端传到后端再传到存储云。安装包一般体积都不小,两次传输会浪费很长时间。
那,怎么快点捡到肥皂防止被 gang ?考虑一下这个姿势
不好意思,又放错了,是这样的:
- 前端选择 ipa 或者 apk 文件
- js 解析安装包的名称、版本号
- 将安装包直传到存储云,上传成功的回调中将安装包 url、名称、版本号发送给后端
安装包只需要经过一次传输,另一次则是可以忽略不计的请求
因为捡肥皂时间短,出事被 gang 的几率也会小很多(逃
npm install app-info-parser
// or yarn
yarn add app-info-parser
在 node 端使用:
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)
})
在浏览器使用(配合打包工具使用):
<!-- html -->
<input type="file" name="file" id="file" onchange="fileSelect()">
// js
const AppInfoParser = require('app-info-parser')
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)
})
}
源码地址: https://github.com/chenquincy/app-info-parser
我没有在要 star (严肃脸)
深圳大疆创新长期招收前端(可内推),欢迎投递简历到 mail@quincychen.cn
附招聘官网:大疆创新招聘官网
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.