首页 > 编程语言 > 详细

springcloud minio 文件上传

时间:2021-06-10 13:53:34      阅读:26      评论:0      收藏:0      [点我收藏+]

POM

<dependency>
      <groupId>io.minio</groupId>
      <artifactId>minio</artifactId>
      <version>8.2.1</version>
    </dependency>

 

配置文件

#minio 文件服务器配置
minio:
  hostUrl: http://localhost:9000
  accessKey: admin
  secretKey: admin
  bucketName: myfile

 

Controller/Action:

单文件上传:

//minio文件服务器参数
    @Value("${minio.hostUrl}")
    private String minioHostUrl;
    @Value("${minio.accessKey}")
    private String minioAccessKey;
    @Value("${minio.secretKey}")
    private String minioSecretKey;
    @Value("${minio.bucketName}")
    private String minioBucketName;
 
    /**
     *  单文件(上传到minio文件服务器)
     */
    @RequestMapping(value = "upload", method = RequestMethod.POST)
    public List<String> upload(HttpServletRequest request) throws Exception {
        List<String> filePath=new ArrayList<>();
        MultipartHttpServletRequest murequest = (MultipartHttpServletRequest) request;
        Map<String, MultipartFile> files = murequest.getFileMap();// 得到文件map对象
 
        List<String> filePath = new ArrayList<String>();
        for (MultipartFile file : files.values()) {
            //源文件名
            String originalFilename = file.getOriginalFilename();
            //保存文件的路径(如2020/7/10/4d132f66a7b948c882e2c1649a58ab70-file1.jpg),防止文件名重复。
            String saveFileName = UUID.randomUUID().toString().replace("-", "").toLowerCase()+"-"+originalFilename;
            //初始化MinioClient
            MinioClient minioClient = MinioClient.builder()
                    .endpoint(minioHostUrl)
                    .credentials(minioAccessKey, minioSecretKey)
                    .build();
            //上传
            minioClient.putObject(
                    PutObjectArgs.builder()
                    .bucket(minioBucketName)        //桶名(文件夹名)
                    .stream(file.getInputStream(),file.getSize(), 5*1024*1024)      //文件,大小
                    .object(saveFileName)       //文件名
                    .build());
            String backFileName="/"+minioBucketName+"/"+saveFileName;
            filePath.add(backFileName);
        }
 
        return filePath;
 
    }

 

多文件上传:

/**
     *  多文件(上传到minio文件服务器)
     */
    @RequestMapping(value = "upload", method = RequestMethod.POST)
    public List<String> upload(@RequestParam("file") MultipartFile[] files, HttpServletRequest request) throws Exception {
        List<String> filePath = new ArrayList<>();
        for (MultipartFile file : files) {
            //源文件名
            String originalFilename = file.getOriginalFilename();
            //保存文件的路径(如2020/7/10/4d132f66a7b948c882e2c1649a58ab70.jpg)
            String saveFileName = UUID.randomUUID().toString().replace("-", "").toLowerCase()+"-"+originalFilename;
            //初始化MinioClient
            MinioClient minioClient = MinioClient.builder()
                    .endpoint(minioHostUrl)
                    .credentials(minioAccessKey, minioSecretKey)
                    .build();
            //上传
            minioClient.putObject(
                    PutObjectArgs.builder()
                    .bucket(minioBucketName)        //桶名(文件夹名)
                    .stream(file.getInputStream(),file.getSize(), 5*1024*1024)      //文件,大小
                    .object(saveFileName)       //文件名
                    .build());
            String backFileName="/"+minioBucketName+"/"+saveFileName;
            filePath.add(backFileName);
        }
 
        return filePath;
 
    }

 

springcloud minio 文件上传

原文:https://www.cnblogs.com/hanjun0612/p/14870522.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!