青羊经侦大队-数据平台
whj
2022-07-11 02088e66b8474128e72ef282e07e1a0701a103bd
整合minio
3个文件已修改
4个文件已添加
131 ■■■■■ 已修改文件
pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/config/MinIOConfig.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/MinIOController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/MinIOService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/MinIOServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.properties 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/example/jz/JzApplicationTests.java 6 ●●●●● 补丁 | 查看 | 原始文档 | 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
@@ -19,4 +18,12 @@
spring.datasource.hikari.max-lifetime=900000
spring.datasource.hikari.connection-timeout=10000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.validation-timeout=1000
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"));
    }
}