springcloud minio 文件上传

89 篇文章 1 订阅
76 篇文章 2 订阅

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;

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值