|
@@ -18,7 +18,8 @@ import com.aliyun.oss.common.auth.DefaultCredentialProvider;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.aliyun.oss.common.utils.BinaryUtil;
|
|
import com.aliyun.oss.model.MatchMode;
|
|
import com.aliyun.oss.model.MatchMode;
|
|
import com.aliyun.oss.model.PolicyConditions;
|
|
import com.aliyun.oss.model.PolicyConditions;
|
|
-import com.llisoft.service.file.vo.ResponseUploadVo;
|
|
|
|
|
|
+import com.llisoft.service.file.vo.UploadCdnResponseVo;
|
|
|
|
+import com.llisoft.service.file.vo.UploadResponseVo;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 阿里云OSS接口调用
|
|
* 阿里云OSS接口调用
|
|
@@ -32,18 +33,16 @@ public class OssService {
|
|
@Value("${mta.debug}")
|
|
@Value("${mta.debug}")
|
|
private boolean debug;
|
|
private boolean debug;
|
|
|
|
|
|
|
|
+ @Value("${oss.url}")
|
|
|
|
+ private String url;
|
|
|
|
+ @Value("${oss.bucket}")
|
|
|
|
+ private String bucket;
|
|
@Value("${oss.endpoint}")
|
|
@Value("${oss.endpoint}")
|
|
private String endpoint;
|
|
private String endpoint;
|
|
@Value("${oss.accessKeyId}")
|
|
@Value("${oss.accessKeyId}")
|
|
private String accessKeyId;
|
|
private String accessKeyId;
|
|
@Value("${oss.accessKeySecret}")
|
|
@Value("${oss.accessKeySecret}")
|
|
private String accessKeySecret;
|
|
private String accessKeySecret;
|
|
- @Value("${oss.private.bucket}")
|
|
|
|
- private String privateBucket;
|
|
|
|
- @Value("${oss.public.bucket}")
|
|
|
|
- private String publicBucket;
|
|
|
|
- @Value("${oss.public.domain}")
|
|
|
|
- private String publicDomain;
|
|
|
|
|
|
|
|
|
|
|
|
// OSS客户端
|
|
// OSS客户端
|
|
@@ -59,20 +58,21 @@ public class OssService {
|
|
* @return
|
|
* @return
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
- public ResponseUploadVo upload(String prefix, String suffix) throws Exception {
|
|
|
|
|
|
+ public UploadResponseVo upload(String prefix, String suffix, boolean cdn) throws Exception {
|
|
|
|
+ suffix = Objects.nonNull(suffix) ? "."+suffix : "";
|
|
|
|
+ prefix = Objects.nonNull(prefix) ? prefix : "";
|
|
|
|
+ prefix = cdn ? "public/" + prefix : "private/" + prefix; // 区分公开资源和私有资源
|
|
prefix = debug ? "test/" + prefix : prefix; // 测试环境下添加固定前缀, 定时清理
|
|
prefix = debug ? "test/" + prefix : prefix; // 测试环境下添加固定前缀, 定时清理
|
|
PolicyConditions policyConditions = new PolicyConditions();
|
|
PolicyConditions policyConditions = new PolicyConditions();
|
|
policyConditions.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1024*1024*1024*1); // 内容长度范围1G
|
|
policyConditions.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1024*1024*1024*1); // 内容长度范围1G
|
|
policyConditions.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, prefix); // key前缀
|
|
policyConditions.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, prefix); // key前缀
|
|
String postPolicy = ossClient.generatePostPolicy(this.getExpiration(10), policyConditions); // 有效期10分钟
|
|
String postPolicy = ossClient.generatePostPolicy(this.getExpiration(10), policyConditions); // 有效期10分钟
|
|
- String encodedPolicy = BinaryUtil.toBase64String(postPolicy.getBytes("utf-8"));
|
|
|
|
- String postSignature = ossClient.calculatePostSignature(postPolicy);
|
|
|
|
- ResponseUploadVo uploadBean = new ResponseUploadVo();
|
|
|
|
- uploadBean.setKey(prefix + UUID.randomUUID().toString().replace("-", "") + "." + suffix);
|
|
|
|
|
|
+ UploadResponseVo uploadBean = cdn ? new UploadCdnResponseVo() : new UploadResponseVo();
|
|
|
|
+ uploadBean.setKey(prefix + UUID.randomUUID().toString().replace("-", "") + suffix);
|
|
|
|
+ uploadBean.setPolicy(BinaryUtil.toBase64String(postPolicy.getBytes("utf-8")));
|
|
|
|
+ uploadBean.setSignature(ossClient.calculatePostSignature(postPolicy));
|
|
uploadBean.setAccessid(accessKeyId);
|
|
uploadBean.setAccessid(accessKeyId);
|
|
- uploadBean.setPolicy(encodedPolicy);
|
|
|
|
- uploadBean.setSignature(postSignature);
|
|
|
|
- uploadBean.setDomain(publicDomain);
|
|
|
|
|
|
+ uploadBean.setUrl(url);
|
|
return uploadBean;
|
|
return uploadBean;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -86,7 +86,7 @@ public class OssService {
|
|
if(Objects.isNull(key) || key.trim().isEmpty()) {
|
|
if(Objects.isNull(key) || key.trim().isEmpty()) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- URL url = ossClient.generatePresignedUrl(publicBucket, key, this.getExpiration(30)); // 授权有效期30分钟
|
|
|
|
|
|
+ URL url = ossClient.generatePresignedUrl(bucket, key, this.getExpiration(30)); // 授权有效期30分钟
|
|
String result = url.toString();
|
|
String result = url.toString();
|
|
logger.info("oss下载返回: {}", result);
|
|
logger.info("oss下载返回: {}", result);
|
|
return result;
|
|
return result;
|