pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/example/jz/config/MinIOConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/example/jz/controller/MinIOController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/example/jz/service/MinIOService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.properties | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/test/java/com/example/jz/JzApplicationTests.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -40,6 +40,11 @@ <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.1.0</version> </dependency> </dependencies> <build> src/main/java/com/example/jz/config/MinIOConfig.java
New file @@ -0,0 +1,30 @@ package com.example.jz.config; import io.minio.MinioClient; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import okhttp3.HttpUrl; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; @Data @EqualsAndHashCode @Accessors(chain = true) @Component public class MinIOConfig { @Value("${minio.address}") private String address; @Value("${minio.accessKey}") private String accessKey; @Value("${minio.secretKey}") private String secretKey; @Value("${minio.bucketName}") private String bucketName; @Bean public MinioClient minioClient(){ return MinioClient.builder().endpoint(address).credentials(accessKey, secretKey).build(); } } src/main/java/com/example/jz/controller/MinIOController.java
New file @@ -0,0 +1,21 @@ package com.example.jz.controller; import com.example.jz.service.MinIOService; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController @RequestMapping("/minio") public class MinIOController { @Resource private MinIOService minIOService; @RequestMapping(method = RequestMethod.GET,value = "/{fileName}") public String getUrl(@PathVariable String fileName){ return ""; } } src/main/java/com/example/jz/service/MinIOService.java
New file @@ -0,0 +1,5 @@ package com.example.jz.service; public interface MinIOService { public String getPreviewFileUrl(String fileName); } src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java
New file @@ -0,0 +1,53 @@ package com.example.jz.service.impl; import com.example.jz.config.MinIOConfig; import com.example.jz.service.MinIOService; import io.minio.GetPresignedObjectUrlArgs; import io.minio.MinioClient; import io.minio.errors.*; import io.minio.http.Method; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.concurrent.TimeUnit; @Service public class MinIOServiceImpl implements MinIOService { @Autowired MinioClient minioClient; @Autowired MinIOConfig minIOConfig; @Override public String getPreviewFileUrl(String fileName){ String res = null; try { res = minioClient.presignedGetObject(minIOConfig.getBucketName(), fileName); } catch (ErrorResponseException e) { throw new RuntimeException(e); } catch (InsufficientDataException e) { throw new RuntimeException(e); } catch (InternalException e) { throw new RuntimeException(e); } catch (InvalidBucketNameException e) { throw new RuntimeException(e); } catch (InvalidExpiresRangeException e) { throw new RuntimeException(e); } catch (InvalidKeyException e) { throw new RuntimeException(e); } catch (InvalidResponseException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } catch (ServerException e) { throw new RuntimeException(e); } catch (XmlParserException e) { throw new RuntimeException(e); } return res; } } src/main/resources/application.properties
@@ -1,7 +1,6 @@ ### web server.port=8080 ### datasource #test spring.datasource.url=jdbc:mysql://140.143.152.226:3306/job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai @@ -20,3 +19,11 @@ spring.datasource.hikari.connection-timeout=10000 spring.datasource.hikari.connection-test-query=SELECT 1 spring.datasource.hikari.validation-timeout=1000 # ??????? spring.servlet.multipart.max-file-size=50MB # minio??????? minio.address=http://119.28.5.249:9000 minio.accessKey=minioadmin minio.secretKey=minioadmin minio.bucketName=img src/test/java/com/example/jz/JzApplicationTests.java
@@ -1,13 +1,19 @@ package com.example.jz; import com.example.jz.config.MinIOConfig; import com.example.jz.service.MinIOService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class JzApplicationTests { @Autowired MinIOService minIOService; @Test void contextLoads() { System.out.println(minIOService.getPreviewFileUrl("2fff006f3082f00e26d496dc0a47c624.png")); } }