【minio预处理路径接口】
This commit is contained in:
parent
1dd77a87b9
commit
7defb78dfa
@ -5,6 +5,7 @@ import club.joylink.rtss.services.MinioService;
|
||||
import club.joylink.rtss.vo.AccountVO;
|
||||
import club.joylink.rtss.vo.client.PageVO;
|
||||
import club.joylink.rtss.vo.minio.MinioFilePageVO;
|
||||
import io.minio.http.Method;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -17,6 +18,11 @@ public class MinioController {
|
||||
@Autowired
|
||||
private MinioService minioService;
|
||||
|
||||
@GetMapping("/perSignedUrl")
|
||||
public String getPerSignedObjectUrl(String directory, String fileName, Method method) {
|
||||
return minioService.preSignedObjectUrl(directory, fileName, method);
|
||||
}
|
||||
|
||||
@PostMapping("/file/save")
|
||||
public void saveFile(@RequestAttribute AccountVO user, @RequestBody MinioFileInfo fileInfo) {
|
||||
minioService.saveFileInfo(user, fileInfo);
|
||||
|
@ -5,6 +5,7 @@ import club.joylink.rtss.util.MinioClientUtil;
|
||||
import club.joylink.rtss.vo.AccountVO;
|
||||
import club.joylink.rtss.vo.client.PageVO;
|
||||
import club.joylink.rtss.vo.minio.MinioFilePageVO;
|
||||
import io.minio.http.Method;
|
||||
|
||||
public interface MinioService {
|
||||
/**
|
||||
@ -12,6 +13,8 @@ public interface MinioService {
|
||||
*/
|
||||
MinioClientUtil createMinioClientUtil(String directory);
|
||||
|
||||
String preSignedObjectUrl(String directory, String fileName, Method method);
|
||||
|
||||
/**
|
||||
* 前端保存minio上传的文件信息
|
||||
*/
|
||||
|
@ -10,6 +10,7 @@ import club.joylink.rtss.vo.client.PageVO;
|
||||
import club.joylink.rtss.vo.minio.MinioFilePageVO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.minio.http.Method;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -38,6 +39,12 @@ public class MinioServiceImpl implements MinioService {
|
||||
return minioClientUtil;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String preSignedObjectUrl(String directory, String fileName, Method method) {
|
||||
MinioClientUtil minioClientUtil = createMinioClientUtil(directory);
|
||||
return minioClientUtil.getPreSignedObjectUrl(fileName, method);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveFileInfo(AccountVO user, MinioFileInfo minioFileInfo) {
|
||||
minioFileInfo.setCreator(user.getId());
|
||||
|
@ -18,12 +18,14 @@ import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Base64;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
public class MinioClientUtil {
|
||||
private final static String PATH_SEPARATOR = "/";
|
||||
|
||||
|
||||
private MinioClientConfig config;
|
||||
|
||||
/**
|
||||
@ -221,6 +223,25 @@ public class MinioClientUtil {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取预处理连接
|
||||
*/
|
||||
public String getPreSignedObjectUrl(String fileName, Method method) {
|
||||
try {
|
||||
Map<String, String> reqParams = new HashMap<String, String>();
|
||||
reqParams.put("response-content-type", "application/json");
|
||||
return config.getMinioClient().getPresignedObjectUrl(
|
||||
GetPresignedObjectUrlArgs.builder().method(method)
|
||||
.bucket(config.getBucket()).object(getSavePath(fileName))
|
||||
.expiry(60 * 60 * 24)
|
||||
.extraQueryParams(reqParams)
|
||||
.build()
|
||||
);
|
||||
} catch (Exception e) {
|
||||
throw new SimulationException(SimulationExceptionType.System_Fault, e);
|
||||
}
|
||||
}
|
||||
|
||||
private String getSavePath(String fileName) {
|
||||
return FileInfo.getStoragePath(directory, fileName);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user