fix: 桶修改

This commit is contained in:
zlg
2024-07-23 23:24:25 +08:00
parent 14010b5161
commit 03442ec775

View File

@@ -165,6 +165,9 @@ public class SchisandraOssMinioController {
@GetMapping("listDir") @GetMapping("listDir")
public Result listMinioInfo(@RequestParam String userId, @RequestParam String dirName, @RequestParam String bucket) throws Exception { public Result listMinioInfo(@RequestParam String userId, @RequestParam String dirName, @RequestParam String bucket) throws Exception {
Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(userId, "不能为空");
if ((dirName==null)||(dirName.equals(""))){
dirName = "/";
}
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
bean.getMinioOssConfig().setBucketName(bucket); bean.getMinioOssConfig().setBucketName(bucket);
List<OssInfo> object = (List<OssInfo>) caffeineUtil.caffeineBuild().getIfPresent("MinioListDir" + userId + bucket + dirName); List<OssInfo> object = (List<OssInfo>) caffeineUtil.caffeineBuild().getIfPresent("MinioListDir" + userId + bucket + dirName);
@@ -236,6 +239,9 @@ public class SchisandraOssMinioController {
Preconditions.checkNotNull(filePath, "不能为空"); Preconditions.checkNotNull(filePath, "不能为空");
int index = filePath.lastIndexOf("/"); int index = filePath.lastIndexOf("/");
String fileName = filePath.substring(0,index + 1); String fileName = filePath.substring(0,index + 1);
if ((fileName==null)|| ("".equals(fileName))){
fileName="/";
}
caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + fileName); caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + fileName);
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
bean.getMinioOssConfig().setBucketName(bucket); bean.getMinioOssConfig().setBucketName(bucket);
@@ -252,16 +258,19 @@ public class SchisandraOssMinioController {
*/ */
@PostMapping(value = "uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<Object> uploadMinioFile(SchisandraOssMinioDTO schisandraOssMinioDTO, @RequestParam MultipartFile file) throws IOException { public Result<Object> uploadMinioFile(SchisandraOssMinioDTO schisandraOssMinioDTO, @RequestParam MultipartFile file) throws IOException {
String dirname=schisandraOssMinioDTO.getPath();
String path = schisandraOssMinioDTO.getPath(); String path = schisandraOssMinioDTO.getPath();
String bucket = schisandraOssMinioDTO.getBucketName(); String bucket = schisandraOssMinioDTO.getBucketName();
String userId = schisandraOssMinioDTO.getUserId(); String userId = schisandraOssMinioDTO.getUserId();
Preconditions.checkNotNull(bucket, "bucket不能为空"); Preconditions.checkNotNull(bucket, "bucket不能为空");
Preconditions.checkNotNull(userId, "userId不能为空"); Preconditions.checkNotNull(userId, "userId不能为空");
if (path == null || "".equals(path)) { if ((path == null) ||("".equals(path))) {
path = "/"; path = "/";
dirname="/";
} }
if (path.lastIndexOf("/") < path.length() - 1) { if (path.lastIndexOf("/") < path.length() - 1) {
path = path + "/" + file.getOriginalFilename(); path = path + "/" + file.getOriginalFilename();
dirname=dirname+"/";
} }
path=path+file.getOriginalFilename(); path=path+file.getOriginalFilename();
// 获取文件输入流 // 获取文件输入流
@@ -280,7 +289,7 @@ public class SchisandraOssMinioController {
map.put("time", formattedDate); map.put("time", formattedDate);
if (bean.upLoad(is, path, true) != null) { if (bean.upLoad(is, path, true) != null) {
redisUtil.setNx(key, map, 30L, TimeUnit.DAYS); redisUtil.setNx(key, map, 30L, TimeUnit.DAYS);
caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + schisandraOssMinioDTO.getPath()); caffeineUtil.caffeineBuild().invalidate("MinioListDir" + userId + bucket + dirname);
return Result.ok(); return Result.ok();
} else { } else {
return Result.fail(); return Result.fail();
@@ -303,6 +312,9 @@ public class SchisandraOssMinioController {
Preconditions.checkNotNull(oldFileName, "不能为空"); Preconditions.checkNotNull(oldFileName, "不能为空");
Preconditions.checkNotNull(newFileName, "不能为空"); Preconditions.checkNotNull(newFileName, "不能为空");
String path = oldFileName.substring(0, oldFileName.lastIndexOf("/") + 1); String path = oldFileName.substring(0, oldFileName.lastIndexOf("/") + 1);
if ((path == null )||("".equals(path))) {
path="/";
}
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
bean.getMinioOssConfig().setBucketName(bucket); bean.getMinioOssConfig().setBucketName(bucket);
try { try {
@@ -331,6 +343,9 @@ public class SchisandraOssMinioController {
Preconditions.checkNotNull(newFilePath, "不能为空"); Preconditions.checkNotNull(newFilePath, "不能为空");
MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId); MinioOssClient bean = SpringUtil.getBean(OssConstant.OssType.MINIO + userId);
String path = oldFilePath.substring(0, oldFilePath.lastIndexOf("/") + 1); String path = oldFilePath.substring(0, oldFilePath.lastIndexOf("/") + 1);
if ((path==null)|| ("".equals(path))){
path="/";
}
bean.getMinioOssConfig().setBucketName(bucket); bean.getMinioOssConfig().setBucketName(bucket);
try { try {
bean.copy(oldFilePath, newFilePath); bean.copy(oldFilePath, newFilePath);