Compare commits

...

3 Commits

Author SHA1 Message Date
ced4568e8d 434443333444444432 2025-08-15 16:36:55 +08:00
994c377ba8 4344433334444444 2025-08-15 15:49:24 +08:00
2939be7372 434443333444 2025-08-15 15:41:24 +08:00

View File

@ -8,6 +8,8 @@ import com.aliyun.oss.model.PolicyConditions;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import net.lab1024.sa.admin.config.AppConfig;
import net.lab1024.sa.admin.config.EnvConfig;
import net.lab1024.sa.admin.config.OssConfig;
import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
import net.lab1024.sa.admin.module.business.file.constant.OSSFileTypeEnum;
@ -15,6 +17,7 @@ import net.lab1024.sa.admin.module.business.file.domain.vo.OSSPolicyVO;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import net.lab1024.sa.base.constant.SwaggerTagConst;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -23,6 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.util.Date;
import java.util.Objects;
@RestController
@Tag(name = SwaggerTagConst.Support.FILE)
@ -31,13 +35,20 @@ public class OSSFileController {
@Resource
private OssConfig ossConfig;
@Resource
private EnvConfig envConfig;
@Operation(summary = "获取上传文件 Policy, notes=\"type==1 普通type==2 签名图片\"")
@GetMapping("/file/getOSSPolicy/{type}")
@SaCheckPermission("ossFile:add")
public ResponseDTO<OSSPolicyVO> getOSSPolicy(@PathVariable int type){
OSSFileTypeEnum ossFileType = OSSFileTypeEnum.getByVal(type);
Long requestUserId = SmartRequestUtil.getRequestUserId();
String dir = ossFileType.getDesc() + File.separator + "images/";
String dir = "dev/static/images/images";
if (Objects.equals(envConfig.getActive(), "prod")){
dir = "prod/static/images/";
}
// String dir = ossFileType.getDesc() + File.separator + requestUserId + File.separator;
// callbackUrl为 上传回调服务器的URL请将下面的IP和Port配置为您自己的真实信息
OSSClient client = new OSSClient(ossConfig.getEndpoint(), ossConfig.getAccessKey(), ossConfig.getAccessKeySecret());
@ -47,7 +58,7 @@ public class OSSFileController {
Date expiration = new Date(expireEndTime);
PolicyConditions policyConds = new PolicyConditions();
policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 10*1024*1024);// 最大 10 M
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, ossFileType.getDesc());
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);
String postPolicy = client.generatePostPolicy(expiration, policyConds);
byte[] binaryData = postPolicy.getBytes("utf-8");
@ -65,12 +76,16 @@ public class OSSFileController {
@Operation(summary = "获取上传文件 Policy, notes=\"type==1 普通type==2 签名图片\"")
@GetMapping("/file/getOSSPolicy/admin/{type}")
@SaCheckPermission("ossFile:addAdmin")
public ResponseDTO<OSSPolicyVO> getOSSPolicyAdmin(@PathVariable int type){
OSSFileTypeEnum ossFileType = OSSFileTypeEnum.getByVal(type);
Long requestUserId = SmartRequestUtil.getRequestUserId();
String dir = ossFileType.getDesc() + File.separator + "images/";
String dir = "dev/static/images/images";
if (Objects.equals(envConfig.getActive(), "prod")){
dir = "prod/static/images/";
}
// String dir = ossFileType.getDesc() + File.separator + "images/";
// String dir = ossFileType.getDesc() + File.separator + requestUserId + File.separator;
// callbackUrl为 上传回调服务器的URL请将下面的IP和Port配置为您自己的真实信息
OSSClient client = new OSSClient(ossConfig.getEndpoint(), ossConfig.getAccessKey(), ossConfig.getAccessKeySecret());
@ -80,7 +95,7 @@ public class OSSFileController {
Date expiration = new Date(expireEndTime);
PolicyConditions policyConds = new PolicyConditions();
policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 10*1024*1024);// 最大 10 M
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, ossFileType.getDesc());
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);
String postPolicy = client.generatePostPolicy(expiration, policyConds);
byte[] binaryData = postPolicy.getBytes("utf-8");