diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-api/pom.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-api/pom.xml index d3a36f3..0d4ffe3 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-api/pom.xml +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-api/pom.xml @@ -29,12 +29,6 @@ org.springframework.cloud spring-cloud-loadbalancer 3.0.6 - - - reactor-core - io.projectreactor - - org.projectlombok diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java index 76b29f2..596b54d 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssQiniuController.java @@ -18,9 +18,11 @@ import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssQiniuBO; import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssQiniuDomainService; +import com.thoughtworks.xstream.annotations.XStreamImplicitCollection; import io.minio.errors.*; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.*; @@ -113,6 +115,7 @@ public class SchisandraOssQiniuController { * @date: 2024/6/26 13:55 */ @GetMapping("listDir") + @Cacheable(value = "qiniuListDir",key = "#target + #userId + #dirName",unless = "#result == null") public Result listQiniuInfo(@RequestParam String userId, @RequestParam String prefix, @RequestParam String bucket) throws Exception { Preconditions.checkNotNull(userId, "不能为空"); QiNiuOssClient bean = SpringUtil.getBean(OssConstant.OssType.QINIU + userId); @@ -132,6 +135,7 @@ public class SchisandraOssQiniuController { * @date: 2024/6/27 9:41 */ @PostMapping("renameFile") + @CacheEvict(value = "qiniuListDir",key = "#target + #userId + #dirName") public Result renameQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFileName, @RequestParam String newFileName) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); @@ -156,6 +160,7 @@ public class SchisandraOssQiniuController { * @date: 2024/6/27 9:52 */ @PostMapping("copyFile") + @CacheEvict(value = "qiniuListDir",key = "#target + #userId + #dirName") public Result copyQiniuFile(@RequestParam String userId, @RequestParam String bucket, @RequestParam String oldFilePath, @RequestParam String newFilePath) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); @@ -230,6 +235,7 @@ public class SchisandraOssQiniuController { * @date: 2024/7/8 14:34 */ @PostMapping("deleteFile") + @CacheEvict(value = "qiniuListDir",key = "#target + #userId + #dirName") public Result deleteQiniuFile(@RequestParam String bucket, @RequestParam String userId, @RequestParam String filePath) { Preconditions.checkNotNull(bucket, "不能为空"); Preconditions.checkNotNull(userId, "不能为空"); @@ -252,6 +258,7 @@ public class SchisandraOssQiniuController { * @date: 2024/7/8 14:34 */ @PostMapping("uploadFile") + @CacheEvict(value = "qiniuListDir",key = "#target + #userId + #dirName") public Result uploadQiniuFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); @@ -311,6 +318,7 @@ public class SchisandraOssQiniuController { * @date: 2024/7/8 17:38 */ @PostMapping("deleteBucket") + @CacheEvict(value = "qiniuBucket",key = "#userId+#bucket") public Result deleteBucket(@RequestParam String userId, @RequestParam String bucket) { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); @@ -332,6 +340,7 @@ public class SchisandraOssQiniuController { */ @SneakyThrows @PostMapping("createBucket") + @CacheEvict(value = "qiniuBucket",key = "#userId+#bucket") public Result createBucket(@RequestParam String userId, @RequestParam String bucket, @RequestParam String region) { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java index 0ba63b7..b19eecf 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/ali/AliOssClient.java @@ -108,8 +108,18 @@ public class AliOssClient implements StandardOssClient { } public List listAliInfo(String bucket, String prefix){ + ObjectListing objectListing=null; + if (prefix == null) { + objectListing = oss.listObjects(bucket, prefix); + }else { + int index = prefix.lastIndexOf("/"); + if (index < prefix.length() - 1) { + objectListing = oss.listObjects(bucket, prefix+"/"); + }else { + objectListing = oss.listObjects(bucket, prefix); + } + } // 列举文件。如果不设置Prefix,则列举存储空间下的所有文件。如果设置Prefix,则列举包含指定前缀的文件。 - ObjectListing objectListing = oss.listObjects(bucket, prefix); List sums = objectListing.getObjectSummaries(); List infos = new ArrayList<>(); if(prefix == ""){ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java index 1d6b1ca..26efa2e 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/minio/MinioOssClient.java @@ -206,8 +206,14 @@ public class MinioOssClient implements StandardOssClient { results = minioClient.listObjects( ListObjectsArgs.builder().bucket(bucket).recursive(false).build()); } else { - results = minioClient.listObjects( - ListObjectsArgs.builder().prefix(dirName).bucket(bucket).recursive(false).build()); + int index=dirName.lastIndexOf("/"); + if (index infos = new ArrayList<>(); results.forEach(r -> { diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java index 95981e1..4f85ee7 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/qiniu/QiNiuOssClient.java @@ -101,7 +101,12 @@ public class QiNiuOssClient implements StandardOssClient { */ public List listfile(String bucket, String prefix) { String delimiter = ""; - + if (prefix != null) { + int index=prefix.lastIndexOf("/"); + if (index infos = new ArrayList<>(); while (fileListIterator.hasNext()){ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssClient.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssClient.java index 5839d08..029fea6 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssClient.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/oss/core/tencent/TencentOssClient.java @@ -200,6 +200,12 @@ public class TencentOssClient implements StandardOssClient { } public HashMap listTargetDir(String bucket, String dirName) { + if (dirName != null) { + int index=dirName.lastIndexOf("/"); + if (index