用云存储30分钟快速搭建APP

背景

不管你承认与否,移动互联的时代已经到来,这是一个移动互联的时代,手机已经是当今世界上引领潮流的趋势,大型的全球化企业和中小企业都把APP程序开发纳入到他们的企业发展策略当中。

但随着手机APP上传的数据会越来越多,任何企业系统、应用的软件都必须解决这一问题,数据存储必须以某种方式保存,不能丢失并且能够有效简单地使用和更新这些数据。如果开发者自行解决数据存储的问题,有可能在后期花费在之上的精力是其他方面的数倍,但是如果将数据存储这一问题交给OSS,那么开发者就可以从中得以解放,更加专注于自己的应用逻辑。

目的

本文的目的就是让你在30分钟内搭建一个基于OSS的移动应用数据直传服务,所谓直传就是移动应用的数据的上传和下载直接直连OSS,只有控制流走用户自己的服务器,并且具有如下特点:

  • 安全的上传下载方式(临时,灵活的赋权鉴权),
  • 成本低(这样用户不需要准备很多服务器,因为移动应用直联云存储,只有控制流走用户自己的应用服务器。)
  • 高并发,支持海量用户(OSS有海量的上传和下载带宽)
  • 弹性(OSS有无限扩容的存储空间)
  • 方便(可以方便的对接到媒体转码服务-视频多端适配,图片处理服务,CDN加速下载等)

架构图

用云存储30分钟快速搭建APP

详细资料可以参考这里

角色解析

  1. Android/iOS 应用。即最终用户手机上的APP;
  2. OSS,即阿里云对象存储,负责存储APP上传的数据,可以参考官网:http://www.aliyun.com/product/oss
  3. RAM/STS负责生成临时上传凭证;
  4. 用户应用服务器,即提供该Android/iOS应用的开发者开发的APP后台服务,管理APP上传和下载的Token. 甚至是用户在APP上传数据元数据信息。

数据流解析

  1. Android/iOS应用不可能直接存储AccessKeyID/AccessKeySecret,这样会存在泄密的风险。所以应用必须向用户的应用服务器申请一个临时上传凭证(注意下文将此临时上传凭证称为Token),注意这个Token是有时效性的,如这个Token的过期时间是30分钟(这个时间可以由应用服务器指定),那么在该Android/iOS应用在这30分钟里面,使用这个Token可以从OSS上传和下载数据,30分钟后再重新获取。
  2. 用户的应用服务器检测上述请求的合法性,然后返回Token给应用。
  3. 手机拿到这个Token后就可以将数据上传到OSS,或者从OSS下载数据了。

本文主要介绍了下图中红色和蓝色框的内容:

用云存储30分钟快速搭建APP

应用服务器如何生成这个Token,蓝色方框

Android/iOS应用如何取Token,红色方框