快速搭建移动应用直传服务
时间:2019-02-14 17:28:48 阅读:65996次 分类:常见问题
本文主要介绍如何基于STS Policy的使用规则在30分钟内搭建一个移动应用数据直传服务。直传指的是移动应用数据的上传和下载直接连接OSS,只有控制流连接自己的服务器。
在移动互联的时代,手机app上传的数据越来越多。作为开发者,您可以利用OSS处理各种数据存储需求,从而更加专注于自己的应用逻辑。
您可以通过此移动应用上传图片到OSS。上传的方法支持普通上传和断点续传上传。在网络环境差的情况下,推荐使用断点续传上传。您还可以利用图片处理服务,对要上传的图片进行缩略和加水印处理。示例应用的最终效果图如下:
实现步骤如下:
以下介绍应用服务器如何生成Token以及Android/iOS移动应用如何获取Token。
{ "AccessKeyID" : "", "AccessKeySecret" : "", "RoleArn" : "", "TokenExpireTime" : "900", "PolicyFile": "policy/all_policy.txt" }
代码示例中提供了三种最常用的Token权限文件,位于policy目录下面。分别是:
返回的数据格式解析如下:
//正确返回 { "StatusCode":200, "AccessKeyId":"STS.3p***dgagdasdg", "AccessKeySecret":"rpnwO9***tGdrddgsR2YrTtI", "SecurityToken":"CAES+wMIARKAAZhjH0EUOIhJMQBMjRywXq7MQ/cjLYg80Aho1ek0Jm63XMhr9Oc5s˙∂˙∂3qaPer8p1YaX1NTDiCFZWFkvlHf1pQhuxfKBc+mRR9KAbHUefqH+rdjZqjTF7p2m1wJXP8S6k+G2MpHrUe6TYBkJ43GhhTVFMuM3BZajY3VjZWOXBIODRIR1FKZjIiEjMzMzE0MjY0NzM5MTE4NjkxMSoLY2xpZGSSDgSDGAGESGTETqOio6c2RrLWRlbW8vKgoUYWNzOm9zczoqOio6c2RrLWRlbW9KEDExNDg5MzAxMDcyNDY4MThSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzMzMTQyNjQ3MzkxMTg2OTExcglzZGstZGVtbzI=", "Expiration":"2017-12-12T07:49:09Z",
} //错误返回 { "StatusCode":500, "ErrorCode":"InvalidAccessKeyId.NotFound", "ErrorMessage":"Specified access key is not found." }
http://abc.com:8080,将示例程序里面的应用服务器修改成上述地址。
OSS初始化的代码解析如下:
// 推荐使用OSSAuthCredentialsProvider,token过期后会自动刷新。 String stsServer = "应用服务器地址,例如http://abc.com:8080" OSSCredentialProvider credentialProvider = new OSSAuthCredentialsProvider(stsServer); //config ClientConfiguration conf = new ClientConfiguration();
conf.setConnectionTimeout(15 * 1000); // 连接超时时间,默认15秒 conf.setSocketTimeout(15 * 1000); // Socket超时时间,默认15秒 conf.setMaxConcurrentRequest(5); // 最大并发请求数,默认5个 conf.setMaxErrorRetry(2); // 失败后最大重试次数,默认2次 OSS oss = new OSSClient(getApplicationContext(), endpoint, credentialProvider, conf);
OSSClient * client;
...
// 推荐使用OSSAuthCredentialProvider,token过期后会自动刷新。
id<OSSCredentialProvider> credential = [[OSSAuthCredentialProvider alloc] initWithAuthServerUrl:@"应用服务器地址,例如http://abc.com:8080"];
client = [[OSSClient alloc] initWithEndpoint:endPoint credentialProvider:credential];
芜湖市聪明屋智能科技有限公司依托本地规模较大的专业技术团队,专注于数字化与智慧化解决方案研发及落地实施。公司核心产品覆盖商管ERP系统、小票数据采集系统、涉案车辆管理系统、智慧园区系统、智慧农贸系统、低空经济平台、资产管理系统、数字孪生系统、公路养护系统、家政服务系统、警服体验系统、生态警务系统等多领域行业应用,并专业开展AI智能体开发、小程序定制开发及智能硬件定制服务,以成熟技术体系与项目实施能力,为政务、交通、园区、商业、民生等多场景提供一体化、高可靠的数字化解决方案。