admin 发表于 2016-11-22 14:11:56

阿里云OSS对象存储+ STS鉴权模式使用方法

第一步:STS鉴权模式
1:获取STS安全令牌详情

官方介绍地址:https://help.aliyun.com/document_detail/28763.html
操作实例

https://sts.aliyuncs.com?Action=AssumeRole
&RoleArn=acs:ram::1234567890123456:role/adminrole
&RoleSessionName=alice
&DurationSeconds=3600
&Policy=<url_encoded_policy>
&<公共请求参数>PHP代码实例:
提示:角色的全局资源描述符 可以在阿里云后台的角色管理里看到每个账户都有一个类似东西 建议创建不同的账户管理不同的资源
class AliossAction extends Action{
   
    function getToken(){
      $url = "https://sts.aliyuncs.com?Action=AssumeRole&RoleArn=<span style="color: rgb(51, 51, 51); font-family: 微软雅黑, 'Microsoft Yahei', 'Hiragino Sans GB', tahoma, arial, 宋体; line-height: 22.4px; background-color: rgb(255, 255, 255);">角色的全局资源描述符</span>&RoleSessionName=alice";
      $ret = curlGet($url);
      $this->ajaxReturn($ret);
    }
}

安卓代码:
OSSCredentialProvider credetialProvider = new OSSFederationCredentialProvider() {
    @Override
    public OSSFederationToken getFederationToken() {
      try {
            URL stsUrl = new URL("上面的请求地址");
            HttpURLConnection conn = (HttpURLConnection) stsUrl.openConnection();
            InputStream input = conn.getInputStream();
            String jsonText = IOUtils.readStreamAsString(input, OSSConstants.DEFAULT_CHARSET_NAME);
            JSONObject jsonObjs = new JSONObject(jsonText);
            String ak = jsonObjs.getString("accessKeyId");
            String sk = jsonObjs.getString("accessKeySecret");
            String token = jsonObjs.getString("securityToken");
            String expiration = jsonObjs.getString("expiration");
            return new OSSFederationToken(ak, sk, token, expiration);
      } catch (Exception e) {
            e.printStackTrace();
      }
      return null;
    }
};





页: [1]
查看完整版本: 阿里云OSS对象存储+ STS鉴权模式使用方法