栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

实现获取阿里云STS上传token

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实现获取阿里云STS上传token

一 配置概述

        移动端配置 快速搭建移动应用直传服务 (aliyun.com)https://help.aliyun.com/document_detail/31920.html        配置获取STS权限
使用STS临时访问凭证访问OSS (aliyun.com)https://help.aliyun.com/document_detail/100624.htm?spm=a2c4g.11186623.0.0.15541cd5FVNiAy#concept-xzh-nzk-2gb        前端的跨域配置
安装 (aliyun.com)https://help.aliyun.com/document_detail/64041.htm?spm=a2c4g.11186623.0.0.155440c2mZddA9#concept-64041-zh

        获取访问权限
教程示例:使用RAM Policy控制OSS的访问权限 (aliyun.com)https://help.aliyun.com/document_detail/66934.htm?spm=a2c4g.11186623.0.0.4c31c60bCpQFz0

二 依赖
        
            com.aliyun
            aliyun-java-sdk-sts
            3.0.0
        
        
            com.aliyun
            aliyun-java-sdk-core
            4.5.30
        

        获取最新的依赖:
Java示例 (aliyun.com)https://help.aliyun.com/document_detail/28786.htm?spm=a2c4g.11186623.0.0.b8324f77RLwN1Q#concept-rxg-yxv-xdb

三 关键信息与示例代码

        关于STS:
什么是STS (aliyun.com)https://help.aliyun.com/document_detail/28756.htm?spm=a2c4g.11186623.0.0.47044f77zon9WE#reference-ong-5nv-xdb        示例代码:

public Map stsOSS(long duration) {

        //构建一个阿里云客户端,用于发起请求。
        //构建阿里云客户端时需要设置AccessKey ID和AccessKey Secret。
        DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKeyId, accessKeySecret);
        IAcsClient client = new DefaultAcsClient(profile);

        AssumeRoleRequest request = new AssumeRoleRequest();
        request.setRoleArn(arn);
        request.setRoleSessionName(roleSessionName);
        request.setDurationSeconds(duration);
        AssumeRoleResponse roleResponse = null;
        try {
            roleResponse = client.getAcsResponse(request);
        } catch (ClientException e) {
            e.printStackTrace();
        }

        Map keyMap = new HashMap<>();
        String accessKeyId = roleResponse.getCredentials().getAccessKeyId();
        keyMap.put("accessKeyId", accessKeyId);
        String accessKeySecret = roleResponse.getCredentials().getAccessKeySecret();
        keyMap.put("accessKeySecret", accessKeySecret);
        String securityToken = roleResponse.getCredentials().getSecurityToken();
        keyMap.put("securityToken", securityToken);
        return keyMap;
    }

        参考:

Java示例 (aliyun.com)https://help.aliyun.com/document_detail/28786.htm?spm=a2c4g.11186623.0.0.b8324f77RLwN1Q#concept-rxg-yxv-xdb四 返回结果

        过期时间范围:The Min/Max value of DurationSeconds is 15min/1hr.

{
    "data": {
        "requestId": "87F9FF9B-4474-5367-A021-75F8CC1877A8",
        "credentials": {
            "securityToken": "CAIS8wF1q6Ft5B2yfSjIr5fsCPHc1bd5woaSaFTys1o/Scpi2obnrDz2IHFEdXNtCO0asfw2lGtV6foblqNpQppCXlfYYNBstknjS5EpJNivgde8yJBZor/HcDHhJnyW9cvWZPqDP7G5U/yxalfCuzZuyL/hD1uLVECkNpv74vwOLK5gPG+CYCFBGc1dKyZ7tcYeLgGxD/u2NQPwiWeiZygB+CgE0DshsvzunZ3EukSB0AKqktV4/dqhfsKWCOB3J4p6XtuP2+h7S7HMyiY46WIRpfcn1vEVpGuY5ojNWAQOv0ycUfDd99p0NxN0fbQqr3nRPQtIDJQagAGXaPltRLY90UzTc7ITbdu0DWgLWXZpRtbhTqfyKl64fIlHM8p1gG4WolqLQjTz6IBjWFCjihZQ029NWEXJ/EZp8U/HPBk6twmP8Krbila/itVyDO3ciqXiVki/2CDF7qRbTimK8uJ5nT+/ulktC38hmO4vFEQcvgMzuaEIGa08lQ==",
            "accessKeySecret": "652RQY9PSroK***bbvyDdrHtnxX6DBtZFrsGQpwc8",
            "accessKeyId": "STS.NTYCKh8hXu***CWZjEEN5CLN",
            "expiration": "2021-12-31T07:11:54Z"
        },
        "assumedRoleUser": {
            "arn": "acs:ram::1063*****780:role/ramosstest/ramosstest",
            "assumedRoleId": "398925****01835741:ramosstest"
        }
    },
    "code": "10000",
    "msg": "操作成功!"
}

        最后生成的arn = 系统配置的arn+系统设置的roleSessionName

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692271.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号