阿里云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]