package com.ruoyi.common.utils; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.auth.sts.AssumeRoleRequest; import com.aliyuncs.auth.sts.AssumeRoleResponse; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.profile.DefaultProfile; import com.ruoyi.common.config.OssConfig; import com.ruoyi.common.core.domain.OssToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class OssUtils { @Autowired private OssConfig aliOssconfig; public OssToken getToken(){ DefaultProfile profile = DefaultProfile.getProfile(aliOssconfig.getRegion(), aliOssconfig.getAccessKeyId(),aliOssconfig.getAccessKeySecret()); DefaultAcsClient client = new DefaultAcsClient(profile); AssumeRoleRequest request = new AssumeRoleRequest(); request.setRoleSessionName("tms-oss"); request.setRoleArn(aliOssconfig.getRoleArn()); request.setDurationSeconds (1080L); try { AssumeRoleResponse acsResponse = client.getAcsResponse(request); //拿到前端需要的数据了 AssumeRoleResponse.Credentials credentials = acsResponse.getCredentials(); String accessKeyId = credentials.getAccessKeyId(); String accessReySecret = credentials.getAccessKeySecret(); String securityToken = credentials.getSecurityToken(); //构建前端需要的vo return OssToken.builder() .accesskeyId(accessKeyId) .accesskeySecret(accessReySecret).stsToken(securityToken) .region(aliOssconfig.getRegion()) .bucket(aliOssconfig.getBucket()) .key(aliOssconfig.getKey()) .build(); }catch (ClientException exception){ exception.printStackTrace(); System.out.println(exception); } return null; } }