閱讀988 返回首頁    go 直播


請求安全令牌-Java示例代碼__上傳視頻文件_開發人員指南_視頻點播-阿裏雲

返回:簡介 >>

上傳視頻文件-請求安全令牌-Java示例代碼

  1. pom.xml中引用STS的SDK

    1. <dependencies>
    2. <dependency>
    3. <groupId>com.aliyun</groupId>
    4. <artifactId>aliyun-java-sdk-sts</artifactId>
    5. <version>2.1.6</version>
    6. </dependency>
    7. <dependency>
    8. <groupId>com.aliyun</groupId>
    9. <artifactId>aliyun-java-sdk-core</artifactId>
    10. <version>2.2.0</version>
    11. </dependency>
    12. </dependencies>
  2. 代碼

    STS需要一個角色的參數:roleArn。登錄阿裏雲控製台後,可以點擊這裏,然後點擊具體角色名後,在基本信息中有一個參數:Arn,例如1351140512345678:role/teststs

    • main函數
    1. public static void main(String[] args) throws Exception {
    2. IClientProfile profile = DefaultProfile.getProfile(
    3. "cn-hangzhou",
    4. <accessKeyId>,
    5. <accessKeySecret>);
    6. DefaultAcsClient client = new DefaultAcsClient(profile);
    7. AssumeRoleResponse response = assumeRole(client, <roleArn>);
    8. AssumeRoleResponse.Credentials credentials = response.getCredentials();
    9. System.out.println(credentials.getAccessKeyId() + "n" +
    10. credentials.getAccessKeySecret() + "n" +
    11. credentials.getSecurityToken() + "n" +
    12. credentials.getExpiration());
    13. }
    • 生成臨時AK和Token的函數
    1. private static AssumeRoleResponse assumeRole(
    2. DefaultAcsClient client,
    3. String roleArn)
    4. throws ClientException {
    5. final AssumeRoleRequest request = new AssumeRoleRequest();
    6. request.setVersion("2015-04-01");
    7. request.setMethod(MethodType.POST);
    8. request.setProtocol(ProtocolType.HTTPS);
    9. request.setDurationSeconds(900L);
    10. request.setRoleArn(roleArn);
    11. request.setRoleSessionName("test-token");
    12. return client.getAcsResponse(request);
    13. }
  3. Token有效期

    示例代碼中生成的Token有效時間為900秒,可以根據實際需求調整(最小900秒,最大3600秒)。

    在有效期內,不需要反複生成新的Token,可以複用已經生成的Token,如何判斷什麼時候需要重新生成呢?

    1. private static boolean isTimeExpire(String expiration) {
    2. Date nowDate = new Date();
    3. Date expireDate = javax.xml.bind.DatatypeConverter.parseDateTime(expiration).getTime();
    4. if (expireDate.getTime() <= nowDate.getTime()) {
    5. return true;
    6. } else {
    7. return false;
    8. }
    9. }

返回:簡介 >>

最後更新:2016-10-13 11:51:16

  上一篇:go 設置CORS__上傳視頻文件_開發人員指南_視頻點播-阿裏雲
  下一篇:go 隊列方式接收通知__接收消息通知_開發人員指南_視頻點播-阿裏雲