Просмотр исходного кода

增加分布式文件Minio支持

RuoYi лет назад: 5
Родитель
Сommit
e100b0b940

+ 1 - 0
pom.xml

@@ -33,6 +33,7 @@
33
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
33
         <commons.fileupload.version>1.3.3</commons.fileupload.version>
34
         <velocity.version>1.7</velocity.version>
34
         <velocity.version>1.7</velocity.version>
35
         <fastjson.version>1.2.74</fastjson.version>
35
         <fastjson.version>1.2.74</fastjson.version>
36
+        <minio.version>8.0.3</minio.version>
36
 		<poi.version>4.1.2</poi.version>
37
 		<poi.version>4.1.2</poi.version>
37
         <common-pool.version>2.6.2</common-pool.version>
38
         <common-pool.version>2.6.2</common-pool.version>
38
     </properties>
39
     </properties>

+ 7 - 0
ruoyi-modules/ruoyi-file/pom.xml

@@ -54,6 +54,13 @@
54
             <artifactId>fastdfs-client</artifactId>
54
             <artifactId>fastdfs-client</artifactId>
55
         </dependency>
55
         </dependency>
56
         
56
         
57
+        <!-- Minio -->
58
+        <dependency>
59
+            <groupId>io.minio</groupId>
60
+            <artifactId>minio</artifactId>
61
+            <version>${minio.version}</version>
62
+        </dependency>
63
+        
57
         <!-- RuoYi Api System -->
64
         <!-- RuoYi Api System -->
58
         <dependency>
65
         <dependency>
59
             <groupId>com.ruoyi</groupId>
66
             <groupId>com.ruoyi</groupId>

+ 82 - 0
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/config/MinioConfig.java

@@ -0,0 +1,82 @@
1
+package com.ruoyi.file.config;
2
+
3
+import org.springframework.boot.context.properties.ConfigurationProperties;
4
+import org.springframework.context.annotation.Bean;
5
+import org.springframework.context.annotation.Configuration;
6
+import io.minio.MinioClient;
7
+
8
+/**
9
+ * Minio 配置信息
10
+ *
11
+ * @author ruoiy
12
+ */
13
+@Configuration
14
+@ConfigurationProperties(prefix = "minio")
15
+public class MinioConfig
16
+{
17
+    /**
18
+     * 服务地址
19
+     */
20
+    private String url;
21
+
22
+    /**
23
+     * 用户名
24
+     */
25
+    private String accessKey;
26
+
27
+    /**
28
+     * 密码
29
+     */
30
+    private String secretKey;
31
+
32
+    /**
33
+     * 存储桶名称
34
+     */
35
+    private String bucketName;
36
+
37
+    public String getUrl()
38
+    {
39
+        return url;
40
+    }
41
+
42
+    public void setUrl(String url)
43
+    {
44
+        this.url = url;
45
+    }
46
+
47
+    public String getAccessKey()
48
+    {
49
+        return accessKey;
50
+    }
51
+
52
+    public void setAccessKey(String accessKey)
53
+    {
54
+        this.accessKey = accessKey;
55
+    }
56
+
57
+    public String getSecretKey()
58
+    {
59
+        return secretKey;
60
+    }
61
+
62
+    public void setSecretKey(String secretKey)
63
+    {
64
+        this.secretKey = secretKey;
65
+    }
66
+
67
+    public String getBucketName()
68
+    {
69
+        return bucketName;
70
+    }
71
+
72
+    public void setBucketName(String bucketName)
73
+    {
74
+        this.bucketName = bucketName;
75
+    }
76
+
77
+    @Bean
78
+    public MinioClient getMinioClient()
79
+    {
80
+        return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
81
+    }
82
+}

+ 1 - 1
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java

@@ -9,7 +9,7 @@ import com.github.tobato.fastdfs.domain.fdfs.StorePath;
9
 import com.github.tobato.fastdfs.service.FastFileStorageClient;
9
 import com.github.tobato.fastdfs.service.FastFileStorageClient;
10
 
10
 
11
 /**
11
 /**
12
- * FastDFS文件存储
12
+ * FastDFS 文件存储
13
  * 
13
  * 
14
  * @author ruoyi
14
  * @author ruoyi
15
  */
15
  */

+ 0 - 1
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java

@@ -37,7 +37,6 @@ public class LocalSysFileServiceImpl implements ISysFileService
37
      * 本地文件上传接口
37
      * 本地文件上传接口
38
      * 
38
      * 
39
      * @param file 上传的文件
39
      * @param file 上传的文件
40
-     * @param baseDir 相对应用的基目录
41
      * @return 访问地址
40
      * @return 访问地址
42
      * @throws Exception
41
      * @throws Exception
43
      */
42
      */

+ 44 - 0
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java

@@ -0,0 +1,44 @@
1
+package com.ruoyi.file.service;
2
+
3
+import org.springframework.beans.factory.annotation.Autowired;
4
+import org.springframework.stereotype.Service;
5
+import org.springframework.web.multipart.MultipartFile;
6
+import com.ruoyi.file.config.MinioConfig;
7
+import com.ruoyi.file.utils.FileUploadUtils;
8
+import io.minio.MinioClient;
9
+import io.minio.PutObjectArgs;
10
+
11
+/**
12
+ * Minio 文件存储
13
+ * 
14
+ * @author ruoyi
15
+ */
16
+@Service
17
+public class MinioSysFileServiceImpl implements ISysFileService
18
+{
19
+    @Autowired
20
+    private MinioConfig minioConfig;
21
+
22
+    @Autowired
23
+    private MinioClient client;
24
+
25
+    /**
26
+     * 本地文件上传接口
27
+     * 
28
+     * @param file 上传的文件
29
+     * @return 访问地址
30
+     * @throws Exception
31
+     */
32
+    public String uploadFile(MultipartFile file) throws Exception
33
+    {
34
+        String fileName = FileUploadUtils.extractFilename(file);
35
+        PutObjectArgs args = PutObjectArgs.builder()
36
+                .bucket(minioConfig.getBucketName())
37
+                .object(fileName)
38
+                .stream(file.getInputStream(), file.getSize(), -1)
39
+                .contentType(file.getContentType())
40
+                .build();
41
+        client.putObject(args);
42
+        return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
43
+    }
44
+}

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
sql/ry_config_20201221.sql