xiewj 1 tahun lalu
induk
melakukan
87e4a2a2d5

+ 6 - 1
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/aliyun/AliyunOssTemplate.java

@@ -1,6 +1,7 @@
 package com.fdkankan.filestorage.aliyun;
 
 
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
 import com.aliyun.oss.OSS;
@@ -139,7 +140,11 @@ public class AliyunOssTemplate implements FileStorageTemplate {
         InnerUtils.checkArgument(file != null && file.length() > 0, "file can't be empty");
         GetObjectRequest request = new GetObjectRequest(bucket, pathKey);
         log.info("下载开始:下载bucket={},下载pathKey={},下载filePath={}", bucket, pathKey, file);
-        return ossClient.getObject(request, new File(file));
+        File downloadFile = new File(file);
+        if (!FileUtil.exist(downloadFile.getParent())&&downloadFile.isDirectory()){
+            FileUtil.mkdir(downloadFile.getParent());
+        }
+        return ossClient.getObject(request, downloadFile);
     }
 
     @Override

+ 5 - 2
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/aws/AwsTemplate.java

@@ -173,8 +173,11 @@ public class AwsTemplate implements FileStorageTemplate {
         GetObjectRequest request  = new GetObjectRequest(bucket,pathKey);
         log.info("下载开始:下载bucket={},下载pathKey={},下载filePath={}", bucket, pathKey, file);
         try {
-
-            return amazonS3Client.getObject(request,new File(file));
+            File downloadFile = new File(file);
+            if (!FileUtil.exist(downloadFile.getParent())&&downloadFile.isDirectory()){
+                FileUtil.mkdir(downloadFile.getParent());
+            }
+            return amazonS3Client.getObject(request,downloadFile);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 6 - 1
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/cos/CosTemplate.java

@@ -1,6 +1,7 @@
 package com.fdkankan.filestorage.cos;
 
 
+import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSON;
 import com.fdkankan.filestorage.Consumer;
@@ -154,7 +155,11 @@ public class CosTemplate implements FileStorageTemplate {
         InnerUtils.checkArgument(file != null && file.length() > 0, "file can't be empty");
         GetObjectRequest getObjectRequest = new  GetObjectRequest(bucket, pathKey);
         log.info("下载开始:下载bucket={},下载pathKey={},下载filePath={}", bucket, pathKey, file);
-        return cosClient.getObject(getObjectRequest, new File(file));
+        File downloadFile = new File(file);
+        if (!FileUtil.exist(downloadFile.getParent())&&downloadFile.isDirectory()){
+            FileUtil.mkdir(downloadFile.getParent());
+        }
+        return cosClient.getObject(getObjectRequest,downloadFile);
     }
 
     @Override

+ 8 - 12
4dkankan-utils-filestorage/src/main/java/com/fdkankan/filestorage/minio/MinioTemplate.java

@@ -164,24 +164,19 @@ public class MinioTemplate implements FileStorageTemplate {
         InnerUtils.checkArgument(pathKey != null && pathKey.length() > 0, "pathKey can't be empty");
         InnerUtils.checkArgument(file != null && file.length() > 0, "file can't be empty");
 
-        InputStream in=null;
 
         log.info("下载开始:下载bucket={},下载pathKey={},下载filePath={}", bucket, pathKey, file);
         try {
-            GetObjectArgs objectArgs = GetObjectArgs.builder().object(pathKey)
-                    .bucket(bucket).build();
-            in = minioClient.getObject(objectArgs);
+            File downloadFile = new File(file);
+            if (!FileUtil.exist(downloadFile.getParent())&&downloadFile.isDirectory()){
+                FileUtil.mkdir(downloadFile.getParent());
+            }
+            DownloadObjectArgs objectArgs = DownloadObjectArgs.builder().object(pathKey)
+                    .bucket(bucket).filename(file).build();
+            minioClient.downloadObject(objectArgs);
             return null;
         } catch (Exception e) {
             e.printStackTrace();
-        }finally {
-            if(in!=null){
-                try {
-                    in.close();
-                } catch (IOException e) {
-                    log.error(e.getMessage(), e);
-                }
-            }
         }
         return null;
     }
@@ -201,6 +196,7 @@ public class MinioTemplate implements FileStorageTemplate {
         InputStream in=null;
         try {
             in = minioClient.getObject(objectArgs);
+            handler.accept(in);
             return null;
         } catch (Exception e) {
             e.printStackTrace();