好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SpringBoot整合minio快速入门教程(代码示例)

分享一个快速使用springboot整合 minio 实现文件上传和下载的示例。前提是已经安装并运行minio服务,参考 minio快速入门文档

首先添加Minio的依赖

?

1

2

3

4

5

<dependency>

         <groupId>io.minio</groupId>

         <artifactId>minio</artifactId>

         <version> 3.0 . 10 </version>

     </dependency>

然后写一个controller类

这只是一个简单的demo,没有进行任何的封装,可以根据实际情况进行封装。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

package com.file.server.controller;

import io.minio.MinioClient;

import org.apache.tomcat.util.http.fileupload.IOUtils;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

import java.io.InputStream;

@RestController

public class MinioController {

    private static String url = "http://127.0.0.1:9000" ;  //minio服务的IP端口

    private static String accessKey = "W2ZWITFFDWFM5TWS3WI9" ; 

    private static String secretKey = "dNx++XsRJpjmWVQHWv8djMCFJ0A3YXbEr4qfKHR+" ;

   

     //上传文件到minio服务

  @PostMapping ( "upload" )

  public String upload( @RequestParam ( "fileName" ) MultipartFile file )  {

    try {

        MinioClient minioClient = new MinioClient(url, accessKey, secretKey);

        InputStream is= file.getInputStream(); //得到文件流

        String fileName = file.getOriginalFilename(); //文件名

        String contentType = file.getContentType();  //类型

        minioClient.putObject( "file" ,fileName,is,contentType); //把文件放置Minio桶(文件夹)

        return   "上传成功" ;

      } catch (Exception e){

          return "上传失败" ;

      }

     }

     //下载minio服务的文件

     @GetMapping ( "download" )

     public String download(HttpServletResponse response){

         try {

           MinioClient minioClient = new MinioClient(url, accessKey, secretKey);

           InputStream fileInputStream = minioClient.getObject( "file" , "test.jpg" );

           response.setHeader( "Content-Disposition" , "attachment;filename=" + "test.jpg" );

           response.setContentType( "application/force-download" );

           response.setCharacterEncoding( "UTF-8" );

           IOUtils.copy(fileInputStream,response.getOutputStream());

           return "下载完成" ;

         } catch (Exception e){

             return "下载失败" ;

         }

     }

     //获取minio文件的下载地址

     @GetMapping ( "url" )

     public   String  getUrl(){

         try {

             MinioClient minioClient = new MinioClient(url, accessKey, secretKey);

             String url = minioClient.presignedGetObject( "file" , "test.jpg" );

             return url;

         } catch (Exception e){

             return "获取失败" ;

         }

     }

}

到此这篇关于 SpringBoot 整合minio快速入门教程(代码示例)的文章就介绍到这了,更多相关SpringBoot整合minio内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/weixin_45415885/article/details/102870687

查看更多关于SpringBoot整合minio快速入门教程(代码示例)的详细内容...

  阅读:14次