日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

阿里云STS的生成

時(shí)間:2024-10-19 22:12:44 類型:JAVA
字號(hào):    

如何使用STS SDK獲取具有簡(jiǎn)單上傳(oss:PutObject)權(quán)限的臨時(shí)訪問憑證

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.aliyuncs.auth.sts.AssumeRoleRequest;
import com.aliyuncs.auth.sts.AssumeRoleResponse;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "sts", value = "/sts")
public class GetSTSServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // STS服務(wù)接入點(diǎn),例如sts.cn-hangzhou.aliyuncs.com。您可以通過公網(wǎng)或者VPC接入STS服務(wù)。
        String endpoint = "sts.cn-hangzhou.aliyuncs.com";
        // 從環(huán)境變量中獲取步驟1生成的RAM用戶的訪問密鑰(AccessKey ID和AccessKey Secret)。
        String accessKeyId = "ABAI5tPLnpqT8JZJMVtRx5gD";
        String accessKeySecret = "6bSDFUmxw8bD02twHAk2vIersuwrLUA";
        // 從環(huán)境變量中獲取步驟3生成的RAM角色的RamRoleArn。
        String roleArn = "acs:ram::1732622035072713:role/ramossroletest";
        // 自定義角色會(huì)話名稱,用來區(qū)分不同的令牌,例如可填寫為SessionTest。
        String roleSessionName = "fileSessionUpload";
        // 臨時(shí)訪問憑證將獲得角色擁有的所有權(quán)限。
        String policy = null;
        // 臨時(shí)訪問憑證的有效時(shí)間,單位為秒。最小值為900,最大值以當(dāng)前角色設(shè)定的最大會(huì)話時(shí)間為準(zhǔn)。當(dāng)前角色最大會(huì)話時(shí)間取值范圍為3600秒~43200秒,默認(rèn)值為3600秒。
        // 在上傳大文件或者其他較耗時(shí)的使用場(chǎng)景中,建議合理設(shè)置臨時(shí)訪問憑證的有效時(shí)間,確保在完成目標(biāo)任務(wù)前無需反復(fù)調(diào)用STS服務(wù)以獲取臨時(shí)訪問憑證。
        Long durationSeconds = 3600L;
        try {
            // 發(fā)起STS請(qǐng)求所在的地域。建議保留默認(rèn)值,默認(rèn)值為空字符串("")。
            String regionId = "";
            // 添加endpoint。適用于Java SDK 3.12.0及以上版本。
            DefaultProfile.addEndpoint(regionId, "Sts", endpoint);
            // 添加endpoint。適用于Java SDK 3.12.0以下版本。
            // DefaultProfile.addEndpoint("",regionId, "Sts", endpoint);
            // 構(gòu)造default profile。
            IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
            // 構(gòu)造client。
            DefaultAcsClient client = new DefaultAcsClient(profile);
            final AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest();
            // 適用于Java SDK 3.12.0及以上版本。
            assumeRoleRequest.setSysMethod(MethodType.POST);
            // 適用于Java SDK 3.12.0以下版本。
            // request.setMethod(MethodType.POST);
            assumeRoleRequest.setRoleArn(roleArn);
            assumeRoleRequest.setRoleSessionName(roleSessionName);
            assumeRoleRequest.setPolicy(policy);
            assumeRoleRequest.setDurationSeconds(durationSeconds);
            final AssumeRoleResponse assumeRoleResponse = client.getAcsResponse(assumeRoleRequest);
            System.out.println("Expiration: " + assumeRoleResponse.getCredentials().getExpiration());
//            臨時(shí)訪問憑證過期時(shí)間格式是UTC,與北京時(shí)間有8小時(shí)的時(shí)差。例如,臨時(shí)訪問憑證過期時(shí)間是2024-04-18T11:33:40Z,說明臨時(shí)訪問憑證將在北京時(shí)間2024年4月18日19時(shí)33分40秒之前過期
            System.out.println("Access Key Id: " + assumeRoleResponse.getCredentials().getAccessKeyId());
            System.out.println("Access Key Secret: " + assumeRoleResponse.getCredentials().getAccessKeySecret());
            System.out.println("Security Token: " + assumeRoleResponse.getCredentials().getSecurityToken());
            System.out.println("RequestId: " + assumeRoleResponse.getRequestId());
        } catch (ClientException e) {
            System.out.println("Failed:");
            System.out.println("Error code: " + e.getErrCode());
            System.out.println("Error message: " + e.getErrMsg());
            System.out.println("RequestId: " + e.getRequestId());
        }
    }
}

生成結(jié)果如下:

Expiration: 2024-10-19T15:03:47Z
Access Key Id: STS.NU9MoqZR51pVsjdjPp1f9QpPt
Access Key Secret: 6gnsvTyvrsVmxwEZCWL2JTcmRx2QTvorGEoBGZzXdvzKC
Security Token: CAISywJ1q6Ft5B2yfSjIr5aMBtXFt40UhrK9cUzVjlAlPekVvrX7ljz2IHhMfXVtBegYs/s2nGBZ6/gelrh9SptIfkHfdsp36KlP9QSob9J5fB13L+ZW5qe+EE2/VjTZvqaLEcibIfrZfvCyESOm8gZ43br9cxi7QlWhKufnoJV7b9MRLGLaBHg8c7UwHAZ5r9IAPnb8LOukNgWQ4lDdF011oAFx+wgdgOadupTDtkqA1geikbJN+N6ue8OeApMybMslYbCcx/drc6fN6ilU5iVR+b1+5K4+om+f543AXwEPvkrfa7qFr4MzNmljb609ALVeq/zxifBjpvxyEhBGb7WoVgs8cVM8JOjIqKOscIsi5s6481TGFV55c8FdR3jkMj5V8L8hTnduUfAPRHG+p5JCZM90ZAFpFt5kTKnBL4rB5MUctfzRp1BBQbPUTzDnGoABiPcBGE8ul1pCpBCxVQK3DqCyumZ6ObzA2sR/tZ4bg3cB4E1N0WBVroa/ALOmpL17aNRJ8rI+WZqn8c4OA4gG+KvWDZRep0yGBgrBCWZbdxDxJn4y6I5c9X5SVfUSM83BqD8DrV+FBSb08ktCw5voBd7p5vS7LePJFHlSIr/shikgAA==
RequestId: 7E7E5805-B30B-5A5A-BF5F-A31F3263FCFE


<