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;
|
}
|
|
}
|