快速搭建移动应用直传服务
本文主要介绍如何基于STS服务在30分钟内快速搭建一个移动应用数据直传服务,让您的移动应用数据上传与下载直接对接OSS,仅需通过应用服务器管理控制信息,实现数据传输的高效与安全。
为什么选择直传服务
在移动互联的时代,手机App上传的数据越来越多。作为开发者,您可以利用OSS处理各种数据存储需求,从而更加专注于自己的应用逻辑。基于OSS的移动应用数据直传服务具有以下优势:
- 数据安全:使用灵活的权限管理机制进行数据的上传和下载,更加安全。
- 成本低廉:您不需要准备很多服务器。移动应用直接连接云存储OSS,只有控制流连接应用服务器。
- 高并发:轻松应对高并发访问,保证用户体验。
- 弹性扩容:存储空间随需扩展,满足业务增长需求。
- 数据处理:无缝集成图片处理与音视频转码功能,数据处理更灵活。
前提条件
如何进行移动应用直传
移动应用直传服务的开发流程如下:
实现步骤如下:
- 移动应用向业务服务器请求临时访问凭证。
- 业务服务器使用STS SDK调用AssumeRole接口,获取临时访问凭证。
- STS生成并返回临时访问凭证给业务服务器。
- 业务服务器返回临时访问凭证给客户端。
- 移动应用使用OSS SDK通过该临时访问凭证上传文件到OSS。
- OSS返回成功响应给客户端。
操作步骤
步骤一:开通STS服务并配置应用服务器
一、在访问控制创建RAM用户
首先,创建一个RAM用户,并获取对应的访问密钥,作为业务服务器的应用程序的长期身份凭证。
- 使用云账号或账号管理员登录RAM控制台。
- 在左侧导航栏,选择身份管理 > 用户。
- 单击创建用户。
- 输入登录名称和显示名称。
- 在访问方式区域下,选择使用永久 AccessKey 访问,然后单击确定。
- 单击操作下的复制,保存调用密钥(AccessKey ID和AccessKey Secret)。
二、在访问控制为RAM用户授予调用AssumeRole接口的权限
创建RAM用户后,需要授予RAM用户调用STS服务的AssumeRole接口的权限,使其可以通过扮演RAM角色来获取临时身份凭证。
- 在左侧导航栏,选择身份管理 > 用户。
- 在用户页面,找到目标RAM用户,然后单击RAM用户右侧的添加权限。
- 在新增授权页面,选择AliyunSTSAssumeRoleAccess系统策略。

- 单击确认新增授权。
三、在访问控制创建RAM角色
为当前云账号创建一个RAM角色,并获取对应的角色的ARN(Aliyun Resource Name,阿里云资源名称),用于RAM用户之后进行扮演。
- 在左侧导航栏,选择身份管理 > 角色。
- 单击创建角色,可信实体类型选择云账号。
- 选择当前云账号,单击确定。
- 填写角色名称,单击确定。
- 在RAM角色管理页面,单击复制,保存角色的ARN。

四、在访问控制创建上传文件的权限策略
按照最小授权原则,为RAM角色创建一个自定义权限策略,限制只能向指定OSS的存储空间进行上传操作。
- 在左侧导航栏,选择权限管理 > 权限策略。
- 单击创建权限策略。
- 在创建权限策略页面,单击脚本编辑,将以下脚本中的
替换为准备工作中创建的Bucket名称名称> web-direct-upload。 - 策略配置完成后,单击继续编辑基本信息。
- 在基本信息区域,填写策略名称,然后单击确定。
五、在访问控制为RAM角色授予权限
为RAM角色授予创建的自定义权限,以便该RAM角色被扮演时能获取所需的权限。
- 在左侧导航栏,选择身份管理 > 角色。
- 在角色页面,找到目标RAM角色,然后单击RAM角色右侧的新增授权。
- 在新增授权页面下,选择自定义策略,选择已创建的自定义权限策略。

- 单击确定。
六、创建ECS实例作为业务服务器
创建一台ECS实例作为业务服务器,用于生成临时身份凭证。
参数 | 示例值 |
付费类型 | 按量付费 |
地域 | 华东1(杭州) |
公网 IP | 分配公网 IPv4 地址 |
安全组 | 开放HTTP (TCP:80)端口 |
具体步骤,请参见创建ECS实例。
七、在业务服务器获取临时身份凭证
在Web应用中,通过在业务服务器集成STS SDK,实现一个获取临时STS身份凭证的接口。当这个接口(/get_sts_token)通过HTTP GET方法被访问时,它会生成一个临时身份凭证,并将其返回给请求者。
在ECS实例上,使用Flask框架快速搭建Web应用,实现一个获取临时STS身份凭证的接口的操作示例如下:
步骤二:下载并安装移动应用
- 下载移动应用源码。
您可以通过此移动应用上传图片到OSS。上传的方法支持普通上传和断点续传。在网络环境差的情况下,推荐使用断点续传。您还可以利用图片处理服务,对要上传的图片进行缩略和加水印处理。 - 打开移动应用,配置应用参数

- 点击设置。
步骤三:体验移动应用直传服务
- 设置OSS的object名。点击上传,选择需要上传的图片。
- 上传成功后,通过控制台查看上传结果。


