zoukankan      html  css  js  c++  java
  • springcloud minio 文件上传

    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;
     
        }
  • 相关阅读:
    SQL必知必会-笔记(五)函数
    软件测试面试题:系统中的图片不显示如何排查原因
    windows用浏览器访问linux目录文件
    记测试工作中一次印象深刻的事
    怎么快速适应新的测试工作?
    xshell如何导出日志文件和上传文件
    jmeter+fiddler高效率整理接口脚本
    python-用requests库处理form-data格式的参数
    软件自动化测试工程师面试题集锦(4)
    shell脚本批量检查某个或多个服务的端口和进程是否正常
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/14870522.html
Copyright © 2011-2022 走看看