1. 云计算教程网首页
  2. 阿里云

使用已经搭建好的应用服务器

本文主要讲解OssDemo这样的移动APP如何使用应用服务器,以达到不需要在APP端存储AccessKeyId和AccessKeySecret也能向OSS上传的目的。

调用逻辑

  1. OssDemo在获取sts_server的地址后,发送请求。
  2. sts_server返回AccessKeyId、AccessKeySecret、SecurityToken、Expiration。
  3. OssDemo获取这些信息后,调用SDK,构建OssClient。

具体代码

  1. 生成一个EditText控件。
    位置:
     res/layout/content_main.xml
     内容:
     <EditText
         android:layout_height="wrap_content"
         android:layout_width="0dp"
         android:layout_weight="4"
         android:id="@+id/sts_server"
         android:text="@string/sts_server"
         />
     位置:
     res/values/strings
     内容:
     <string name="sts_server">http://oss-demo.aliyuncs.com/app-server/sts.php</string>
  2. 从应用服务器获取STS相关参数的代码。

    函数实现:

    OSSFederationToken getFederationToken()
  3. 调用STS返回参数,初始化OssClient代码。

    函数实现:

    //初始化一个OssService用来上传下载
     public OssService initOSS(String endpoint, String bucket, ImageDisplayer displayer) {
         //如果希望直接使用accessKey来访问的时候,可以直接使用OSSPlainTextAKSKCredentialProvider来鉴权。
         //OSSCredentialProvider credentialProvider = new OSSPlainTextAKSKCredentialProvider(accessKeyId, accessKeySecret);
         //使用自己的获取STSToken的类
         OSSCredentialProvider credentialProvider = new STSGetter(stsServer);
         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);
         return new OssService(oss, bucket, displayer);
     }

发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/2891.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code